2011-03-05 5 views
2

안녕하세요, 저는 richtextbox 있습니다. 콘텐츠를 추가하려면wpf richtextbox run mouseup

Paragraph p = new Paragraph(); 
Run r; 
r = new Run("[" + user + "]: "); 
b = System.Windows.Media.Brushes.Black; 
if (user.Equals(Program.LClient.strUserName)) 
    b = Brushes.Blue; 
r.Foreground = b; 
r.ToolTip = DateTime.Now.ToLongTimeString() + " " + DateTime.Now.ToLongDateString() + "\nClick to whisper"; 
r.Cursor = Cursors.Hand; 
r.Background = Brushes.White; 
r.MouseEnter += delegate(object sender, MouseEventArgs e) 
{ 
    r.Background = new RadialGradientBrush(Colors.DarkGray, Colors.WhiteSmoke); 

}; 
r.MouseLeave += delegate(object sender, MouseEventArgs e) 
{ 
    r.Background = Brushes.White; 
}; 
r.PreviewMouseUp += delegate(object sender, MouseButtonEventArgs e) 
{ 
    tbMess.Text = "/w " + user + " "; 
    tbMess.Focus(); 
}; 
p.Inlines.Add(new Bold(r)); 
rtbChat.Document.Blocks.Add(p); 

나는 모든 mouseup/down 이벤트를 등록 할 수 있다는 것을 제외하고는 모두 작동합니다. 마우스 입력 및 퇴근 잘 작동, 그냥 어떤 이유로 buttonevents 얻을 수 없습니다. 또한, RichTextBox에 등록 된 마우스 이벤트가 없습니다.

또한이를 수행 할 수있는 다른 방법을 제시하기 전에이 내용을 읽으십시오.

저는 이것을 수행하는 새로운 방법을 찾는데 관심이 없습니다. 내가 추적하고 싶은 모든 다른 요소의 위치 배열을 유지할 수 있다는 것을 알고 있지만, 그 일에 관심이 없습니다. 나는 mouseup/down 이벤트가 실행을 위해 사용 가능하지 않다는 것을 말하는 어떤 문서도 발견하지 못했습니다. 그래서 방법이 있어야합니다.

도움을 미리 감사드립니다.

+0

"모든 마우스 업/다운 이벤트를 등록 할 수 없다는 것을 제외하고는 모두 작동합니다." 오류가 발생합니까 아니면 제대로 작동하지 않습니까? –

+0

@Mike Caron 그냥 작동하지 않습니다. 오류 없음. 나는 델리게이트 내부에 디버그 포인트를 배치하고 결코 도달하지 않으며, 그것의 내부에는 아무 일도 일어나지 않는다. 이것은 mouseup, mousedown, leftmouseup, leftmousedown 등의 이벤트에서 마찬가지입니다. –

답변

3

awnser를 찾았습니다. 텍스트 상자와 wpf의 서식있는 텍스트 상자에서 클릭이 등록되지 않거나 다른 것입니다. 이를 사용하여 클릭 수를 등록 할 수 있습니다.

r.AddHandler(UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler(delegate(object sender, MouseButtonEventArgs e) 
{ 
//code here 
}));