在.net 6.0的WPF应用中,想使用OpenFileDialog 这个类或者FolderBrowserDialog这个类,是无法找到System.Windows.Forms这个dll引用的,即使从系统C盘里搜索到System.Windows.Forms.dll放到项目里,也会出现异常,而无法识别WPF自带的一些初始化方法。
OpenFileDialog还好,因为他有两个命名空间都有它,一个是Microsoft.Win32,一个是System.Windows.Forms,无法引用System.Windows.Forms还可以退而求其次使用 using Microsoft.Win32;
以前的.net框架直接在Visual Studio项目->引用->右键->添加引用,可以直接方便的找到System.Windows.Forms.dll,但是.net 6.0不可以。经过一番搜索,终于在
Is it possible to use FolderBrowserDialog in a WPF Net 6 application?
找到解决方案
解决方案
<UseWindowsForms>true</UseWindowsForms>
放置的位置是,【项目名】.csproj文件,在Visual Studio 2022 里双击项目名可以打开这个文件。
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<AssemblyVersion>1.0.1</AssemblyVersion>
<FileVersion>1.0.1.0</FileVersion>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>