WPF ShowDialog立即返回

时间:2010-05-11 15:30:04

标签: 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;
}

当我从Visual Studio 2008 SP1在调试模式下运行我的解决方案时,问题会间歇性地发生。这很烦人。

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

1 个答案:

答案 0 :(得分:2)

问题是OpenFileDialog需要一个Window来附加自己。如果没有窗口,则立即返回“false”作为结果。

尝试这样的事情:

var ofd = new OpenFileDialog();
ofd.ShowDialog(Application.Current.MainWindow);

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