.net core wpf 中使用OpenFileDialog窗体

众所周知,在WPF程序中,要是实现“浏览”(也就是打开一个窗体,可以在其中选择文件)的功能,最方便的莫过于使用Windows Form程序中的OpenFileDialog类。 因此在WPF程序中,需要去引用System.Windows.Forms命名空间。

在最新的VS2019中,最新的.NET CORE 也增加了WPF应用。但因为.NET Core的架构与.Net Framework有所不同,特别是初学者都找不到属性的“引用”,继而发现他使用了“依赖项”,从传统的dll文件引用,变成了NuGet包引用,让人有点摸不着头脑。

实际上,在.NET Core的WPF应用中,也可以像传统的WPF应用一样引用Dll文件。只不过在右击“依赖性”选线,选择添加菜单后,用户看不到熟悉的“框架”,而需要点击“浏览”,手动找到需要的dll文件,然后引用即可。

那么,如果在.Net Core框架下的WPF应用程序中使用OpenFileDialog对话框呢?

第一:右击项目的“依赖项”,选择添加引用;

.net core wpf 中使用OpenFileDialog窗体_第1张图片

第二:点击“浏览”,在弹出的文件选择框中,找到system.windows.forms.dll文件。

.net core wpf 中使用OpenFileDialog窗体_第2张图片

这里需要注意:.NET的安装位置,根据操作系统和其本身的版本的不同而不同。我这是windows 10 64位的企业版,安装的vs2019最新版。因此system.windows.forms.dll文件位于:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2。各位读者应该找自己机器上安装的位置。

点击“添加”,然后在图一中,选中System.windows.Forms.dll,并点击“确定”。至此,你的项目引用中就已经添加了这个dll文件的应用。

第三,在代码也,加入system.windows.forms命名空间。

这个地方的做法,就是普通的C#语言,在文件的头部,添加一条using 语句以导入命名空间:

      using System.Windows.Forms;

第四,在你需要的地方,使用OpenFileDialog类:

        // 浏览文件
        private void Btn_Browse(object sender, RoutedEventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            fileDialog.Filter = "所有文件.*|*.*";
            fileDialog.Multiselect = true;
            if( fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                string[] filenames = fileDialog.FileNames;
                foreach(string str in fileDialog.FileNames)
                {
                    // 去除重复的
                    if(!lsb_Files.Items.Contains(str))
                    {
                        lsb_Files.Items.Add(str);
                    }
                }
            }
        }

本文为个人原创,自己一点点理解,如有错误,烦请指点。

你可能感兴趣的:(C#,杂记)