我在网格中有很少的图像,然后当我点击一个按钮时,会出现一个“打开文件对话框”。(当然,在图像上)
Microsoft.Win32.OpenFileDialog dlgOpenFiles = new Microsoft.Win32.OpenFileDialog(); dlgOpenFile.DoModal();
图像附加了LeftButtonUp事件。问题是,如果我通过双击选择文件,打开文件对话框将关闭(这很好),但除此之外,单击文件后面的图像正在接收一个根本不好的LeftButtonUp消息。
我正在使用wpf / c#/ vs2010
答案 0 :(得分:4)
解决问题的简单方法是,无论何时需要处理程序来执行按钮事件,添加按钮事件,在其中执行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);
// ...
}