WPF ShowDialog立即返回

dth*_*her 5 wpf visual-studio-2008

有时,当我在WPF中的OpenFileDialog窗口上调用ShowDialog时,对话框立即关闭,返回值为false。

我正在调用ShowDialog以响应按钮单击事件。我可以使用MSDN上的OpenFileDialog示例代码来重现此问题:

// Configure open file dialog box
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.FileName = "Document"; // Default file name
dlg.DefaultExt = ".txt"; // Default file extension
dlg.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension

// Show open file dialog box
Nullable<bool> result = dlg.ShowDialog();

// Process open file dialog box results
if (result == true)
{
    // Open document
    string filename = dlg.FileName;
}
Run Code Online (Sandbox Code Playgroud)

从Visual Studio 2008 SP1在调试模式下运行解决方案时,会间歇性地出现此问题。真烦人。

这是一个已知的问题?有解决方法吗?

小智 3

问题是 OpenFileDialog 需要一个 Window 来附加自身。如果不存在窗口,则立即返回结果“false”。

尝试这样的事情:

var ofd = new OpenFileDialog();
ofd.ShowDialog(Application.Current.MainWindow);
Run Code Online (Sandbox Code Playgroud)

问候基督教 http://www.wpftutorial.net