Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 鼠标左键向上事件和openfiledialog_C#_Wpf_Mouse_Openfiledialog - Fatal编程技术网

C# 鼠标左键向上事件和openfiledialog

C# 鼠标左键向上事件和openfiledialog,c#,wpf,mouse,openfiledialog,C#,Wpf,Mouse,Openfiledialog,我在网格中有一些图像,然后当我点击一个按钮时,会出现一个打开文件的对话框 Microsoft.Win32.OpenFileDialog dlgOpenFiles=新建Microsoft.Win32.OpenFileDialog; dlgOpenFile.DoModal 这些图像附加了LeftButtonUp事件。问题是,如果我通过双击选择一个文件,打开文件对话框将关闭,这很好,但除此之外,单击的文件后面的图像接收到一条LeftButtonUp消息,这根本不好 我使用的是wpf/c/vs2010一

我在网格中有一些图像,然后当我点击一个按钮时,会出现一个打开文件的对话框

Microsoft.Win32.OpenFileDialog dlgOpenFiles=新建Microsoft.Win32.OpenFileDialog; dlgOpenFile.DoModal

这些图像附加了LeftButtonUp事件。问题是,如果我通过双击选择一个文件,打开文件对话框将关闭,这很好,但除此之外,单击的文件后面的图像接收到一条LeftButtonUp消息,这根本不好


我使用的是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);
    // ...
}