我在网格中只有几张图像,然后当我单击一个按钮时,会出现“打开文件对话框”.(当然,在图像上方)
Microsoft.Win32.OpenFileDialog dlgOpenFiles = new Microsoft.Win32.OpenFileDialog();
dlgOpenFile.DoModal();
图像具有附加的LeftButtonUp事件.问题是,如果我通过双击选择一个文件,则打开的文件对话框关闭(很好),但是除此之外,被单击文件后面的图像还收到了一个LeftButtonUp消息,这根本不好.
我正在使用WPF / C#/ VS2010
解决方法:
解决此问题的简单方法是,每当您需要一个处理按钮按下事件,添加按钮按下事件,在其中执行CaptureMouse()时.现在,在按钮事件中,您可以忽略所有事件,这些事件在没有IsMouseCaptured的情况下都会发生.并确保不要忘记ReleaseMouseCapture():
private void onm ouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
CaptureMouse();
}
private void onm ouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (!IsMouseCaptured)
return;
ReleaseMouseCapture();
var dlg = new OpenFileDialog();
var res = dlg.ShowDialog(this);
// ...
}