我添加了一個功能,可以FlowDocument
在滑鼠單擊時添加文本。中沒有Click
事件FlowDocument
,所以我聽FlowDocument.MouseLeftButtonDown
和MouseLeftButtonUp
檢查滑鼠是否在向下和向上之間移動。當我點擊滑鼠左鍵時,文字添加成功。但是,我無法選擇FlowDocument
.
我試過PreviewMouseLeftButtonDown
和PreviewMouseLeftButtonUp
。行為是一樣的。不是有PostMouseLeftButtonDown
嗎?
我的代碼:
Point mouseDownPoint;
private void doc_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
mouseDownPoint = Mouse.GetPosition(doc);
e.Handled = true;
}
private void doc_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var mouseUpPoint = Mouse.GetPosition(doc);
if ((mouseUpPoint - mouseDownPoint).Length < 8) /* add text */;
}
uj5u.com熱心網友回復:
控制元件在內部處理事件。
如果您像這樣以編程方式注冊事件處理程式,您的doc_MouseLeftButtonUp
事件處理程式應該被呼叫(注意最后一個handledEventsToo
引數):
doc.AddHandler(ContentElement.MouseLeftButtonUpEvent,
(MouseButtonEventHandler)doc_MouseLeftButtonUp, true);
請注意,您可能還必須處理MouseLeftButtonUp
由控制元件本身引發的 。
uj5u.com熱心網友回復:
我找到了解決方案。收聽FlowDocument.MouseLeftButtonDown
和不使用e.Handled=true
收聽FlowDocumentScrollViewer.PreviewMouseLeftButtonUp
會同時獲取文本選擇和添加文本行為。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/537160.html
標籤:C#wpf流水单