在WPF .NET 6.0中使用文件夹浏览器

cs7cruho  于 2023-05-19  发布在  .NET
关注(0)|答案(2)|浏览(304)

我一直试图在.NET 6. 0 WPF应用程序中使用System.Windows.Forms中的文件夹浏览器对话框,每次我添加引用时,它都会破坏我的构建并导致各种wierd错误。
有人发现了吗?
我通过浏览添加了一个对System.Windows.Forms.dll的引用,它在我添加它的第二次完全破坏了我的构建。

vecaoik1

vecaoik11#

您的问题是引用Windows窗体错误。
如文档中所述,要在桌面项目中引用WinForms或WPF,从.NET 5开始,您只需将属性添加到.csproj,MSBuild将完成其余工作:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework> <!-- or any other SDK -->

    <UseWPF>true</UseWPF> <!-- for WPF -->
    <UseWindowsForms>true</UseWindowsForms> <!-- for WinForms -->
  </PropertyGroup>

   <!-- other things go here -->

</Project>

在您的例子中,这是一个使用WinForms中的一些类型的WPF项目,您可以将两者都放在上面。

6yt4nkrj

6yt4nkrj2#

我有一个非常简单的解决方法,使用SaveFileDialog,以防任何人需要它。

using Microsoft.Win32;
  
  SaveFileDialog sfd = new();
  sfd.RestoreDirectory = true;
  sfd.Title = "Select Folder";
  sfd.FileName = "Select Folder and press Save";

  if (sfd.ShowDialog(this).Value)
  {
      txtTargetFolder.Text = System.IO.Path.GetDirectoryName(sfd.FileName);
  }

相关问题