我有一个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;
    }
}

10-07 14:08
查看更多