单击父窗口时,“打开文件”对话框将失效



我正在开发一个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

希望它能起作用。

最新更新