我正在开发一个wpf应用程序,因为我正在使用文件打开对话框,我面临一个小问题。问题是,当我在文件打开对话框时,如果我单击父窗口,则文件对话框将失效。我不想发生这种事。我正在为文件打开对话框使用一个助手类,下面是它的代码
using System;
using System.IO;
using System.Windows.Forms;
namespace MOAA.Infrastructure.Helpers
{
public static class DialogHelper
{
public static string ImportFileDialog(string fileNameWithPath)
{
var dialog = new OpenFileDialog()
{
FileName = fileNameWithPath ?? string.Empty,
InitialDirectory = fileNameWithPath != null ?
Path.GetDirectoryName(fileNameWithPath) : AppDomain.CurrentDomain.BaseDirectory,
};
var dialogStatus = dialog.ShowDialog();
if (dialogStatus == true)
{
return dialog.FileName;
}
return null;
}
}
}
调用ShowDialog()时需要指定父窗口:
var dialogStatus = dialog.ShowDialog(System.Windows.Application.Current.MainWindow);
更新
您正在使用窗口对话框,所以您可以通过将其包装到WPF视图或窗口中来完成更多的工作。然后,设置WPF控制的所有者
wpfDialog.Owner = System.Windows.Application.Current.MainWindow;
这就是你如何包装它:
http://manfredlange.blogspot.com/2009/04/openfiledialog-in-net-on-vista.html
希望它能起作用。