C# 鼠标左键向上事件和openfiledialog
我在网格中有一些图像,然后当我点击一个按钮时,会出现一个打开文件的对话框 Microsoft.Win32.OpenFileDialog dlgOpenFiles=新建Microsoft.Win32.OpenFileDialog; dlgOpenFile.DoModal 这些图像附加了LeftButtonUp事件。问题是,如果我通过双击选择一个文件,打开文件对话框将关闭,这很好,但除此之外,单击的文件后面的图像接收到一条LeftButtonUp消息,这根本不好C# 鼠标左键向上事件和openfiledialog,c#,wpf,mouse,openfiledialog,C#,Wpf,Mouse,Openfiledialog,我在网格中有一些图像,然后当我点击一个按钮时,会出现一个打开文件的对话框 Microsoft.Win32.OpenFileDialog dlgOpenFiles=新建Microsoft.Win32.OpenFileDialog; dlgOpenFile.DoModal 这些图像附加了LeftButtonUp事件。问题是,如果我通过双击选择一个文件,打开文件对话框将关闭,这很好,但除此之外,单击的文件后面的图像接收到一条LeftButtonUp消息,这根本不好 我使用的是wpf/c/vs2010一
我使用的是wpf/c/vs2010一种简单的解决方法,就是每当需要处理程序来启动事件、添加按钮关闭事件、在其中捕获鼠标时。现在,在按钮式事件中,您可以忽略所有事件,这些事件不会被捕获。并确保不要忘记释放鼠标许可:
你能分享你的布局吗?你确定你的图片没有被点击吗?我也有同样的问题。我认为这是微软通用对话框的一个bug。在显示对话框之前,我使用-=运算符从事件链中删除了事件处理函数,然后在关闭对话框后,我重新添加了事件处理函数,在重新添加后不久,事件处理函数会自动触发…我就是无法摆脱它。
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);
// ...
}