有时当我在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在调试模式下运行我的解决方案时,问题会间歇性地发生。这很烦人。
这是一个已知问题吗?有解决方法吗?
答案 0 :(得分:2)
问题是OpenFileDialog需要一个Window来附加自己。如果没有窗口,则立即返回“false”作为结果。
尝试这样的事情:
var ofd = new OpenFileDialog();
ofd.ShowDialog(Application.Current.MainWindow);
问候 基督教 http://www.wpftutorial.net