WPF ShowDialog不显示对话框

时间:2010-08-15 18:10:51

标签: wpf

我有一个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根本无法显示。

有什么想法吗?

谢谢,

巴里

1 个答案:

答案 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存在问题。