我有一个WPF应用程序,大多数工作正常。然而,有几个人报告说当他们按下浏览按钮时没有任何反应。这个代码看起来很简单:
private void btnBrowseFile_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.Filter = "Supported Types (*.xml)|*.xml";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
环境是Windows 7,.Net 3.5 SP1,单显示器。显然没有异常发生,应用程序没有挂起。 OpenFileDialog根本无法显示。
有什么想法吗?
谢谢,
巴里
答案 0 :(得分:1)
不是一个解决方案,而是一个想法:
尝试使用ShowDialog(Window)
- 签名。我从未遇到过你所描述的问题,我总是使用上面提到的签名。也许自动检测所有者有问题。
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.Filter = "Supported Types (*.xml)|*.xml";
Nullable<bool> result = dlg.ShowDialog(Window.GetWindow(this));
if (result == true)
{
另一种选择是使用Win-Forms对话框。然而,这具有加载相应组件的缺点。但是如果你没有在应用启动时打开对话框,我认为这应该不是一个大问题。
我还会查看可以阻止触发事件处理程序的内容。 IMO更有可能永远不会调用事件处理程序而不是OpenFileDialog存在问题。