5

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

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

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

我正在使用 wpf/c#/vs2010

4

1 回答 1

5

解决它的简单方法是,每当您需要一个按钮向上事件的处理程序时,添加一个按钮向下事件,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);
    // ...
}
于 2010-06-09T12:07:59.817 回答