鼠标左键向上事件和openfiledialog

我在网格中只有几张图像,然后当我单击一个按钮时,会出现“打开文件对话框”.(当然,在图像上方)

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);
    // ...
}
上一篇:linux-如何在Ubuntu Jaunty下从HID设备读取事件?


下一篇:c-使用鼠标进行非鼠标输入