鼠标左键向上事件和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); // ... }