鼠标左键向上事件和openfiledialog
我在网格中有很少的图像,然后当我点击一个按钮时,出现“打开文件对话框”。(当然,在图像上)
Microsoft.Win32.OpenFileDialog dlgOpenFiles = new Microsoft.Win32.OpenFileDialog(); dlgOpenFile.DoModal();
图像附加了LeftButtonUp事件。 问题是,如果我通过双击选择文件,打开文件对话框将关闭(这很好),但除此之外,单击文件后面的图像正在接收一个根本不好的LeftButtonUp消息。
我使用的是wpf / c#/ vs2010
解决它的简单方法是,无论何时需要处理程序来执行按钮事件,添加按钮事件,在其中执行CaptureMouse()
。 现在,在您的按钮事件中,您可以忽略所有在没有IsMouseCaptured
情况下发生的事件。 并确保不要忘记ReleaseMouseCapture()
:
private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { CaptureMouse(); } private void OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (!IsMouseCaptured) return; ReleaseMouseCapture(); var dlg = new OpenFileDialog(); var res = dlg.ShowDialog(this); // ... }