phm*_*phm 5 c# wpf mouse openfiledialog
我的网格中只有很少的图像,然后当我单击按钮时,会出现“打开文件对话框”。(当然,在图像上方)
Microsoft.Win32.OpenFileDialog dlgOpenFiles = new Microsoft.Win32.OpenFileDialog(); dlgOpenFile.DoModal();
这些图像附加了 LeftButtonUp 事件。问题是,如果我通过双击选择一个文件,打开的文件对话框将关闭(这很好),但除此之外,单击的文件后面的图像会收到一条 LeftButtonUp 消息,这根本不好。
我正在使用 wpf/c#/vs2010
解决这个问题的简单方法是,每当您需要一个处理程序来处理按钮向上事件时,添加一个按钮向下事件,然后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);
// ...
}
Run Code Online (Sandbox Code Playgroud)