我有一个Canvas
出现在UserControl
中,我已将DoubleClick
事件附加到此UserControl
mainWindow.CanvasLayout.MouseDoubleClick +=
new MouseButtonEventHandler(CanvasLayout_MouseDoubleClick);
我正在使用此事件处理程序来实现全屏功能。
现在,
Canvas
可以在其中放置各种控件。这些控件的拖放功能类似于this codeproject文章。基本上,我会为控件处理这些事件-
this._dragSource.PreviewMouseLeftButtonDown +=
new MouseButtonEventHandler(DragSource_PreviewMouseLeftButtonDown);
this._dragSource.PreviewMouseMove +=
new System.Windows.Input.MouseEventHandler(DragSource_PreviewMouseMove);
this._dragSource.PreviewMouseLeftButtonUp +=
new MouseButtonEventHandler(DragSource_PreviewMouseLeftButtonUp);
现在,当控件上的用户
DoubleClicks
(出现在canvas
中)同时执行DoubleClick
(全屏)和单个Click
(拖放)操作,即,如果用户双击控件并更改其鼠标位置快速更改控制位置(将其拖放到新位置)。用户双击控件时,有什么方法可以防止拖放操作?
最佳答案
知道了,我没有使用MouseDoubleClick
来处理PreviewMouseLeftButtonDown
事件-
mainWindow.CanvasLayout.PreviewMouseLeftButtonDown
+= new MouseButtonEventHandler(CanvasLayout_PreviewMouseLeftButtonDown);
和
void CanvasLayout_PreviewMouseLeftButtonDown(object s, MouseButtonEventArgs e)
{
if (e.ClickCount > 1)
{
// Do double-click code
// Code for FullScreen
e.Handled = true;
}
}