鼠标左键向上事件和openfiledialog

时间:2010-06-09 10:38:36

标签: c# wpf mouse openfiledialog

我在网格中有很少的图像,然后当我点击一个按钮时,会出现一个“打开文件对话框”。(当然,在图像上)

Microsoft.Win32.OpenFileDialog dlgOpenFiles = new Microsoft.Win32.OpenFileDialog(); dlgOpenFile.DoModal();

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

我正在使用wpf / c#/ vs2010

1 个答案:

答案 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);
    // ...
}