我的网格中只有很少的图像,然后当我单击按钮时,会出现“打开文件对话框”。(当然,在图像上方)
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);
// ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)