首页 > 其他分享 >【.NET 5.0】WPF使用弹窗选择文件和文件夹

【.NET 5.0】WPF使用弹窗选择文件和文件夹

时间:2024-01-17 21:46:38浏览次数:25  
标签:5.0 FolderBrowserDialog Windows System Forms 文件夹 NET WPF

一开始使用下面方法调起文件夹窗,始终提示 System.Windows.Forms 这个命名空间无法引入.

// 选择文件夹 
System.Windows.Forms.FolderBrowserDialog FolderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog(); 
if (FolderBrowserDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    txt.Text = FolderBrowserDialog.SelectedPath;
}

我以为是依赖项没有引入,后面搜索 system.Windows.Forms,找不到,只有 System_Windows_Forms,添加之后重新编译也是失败。

最后我发现:在解决方案 --> 项目上鼠标右键,点击属性发现我创建的目标框架是【.NET 5.0】,

在项目文件里面添加下面代码重新编译时也编译失败,提示:NU1102 找不到版本为 (>= 5.0.2) 的包 System.Windows.Forms

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

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <!-- 其他属性... -->
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Windows.Compatibility" Version="5.0.2" />
    <!-- 添加下面这一行 -->
    <PackageReference Include="System.Windows.Forms" Version="5.0.2" />
  </ItemGroup>
</Project>

最后通过询问 ChatGPT 得知:WinForms 已经不再是一个默认引用的包。在这种情况下,你需要将 UseWindowsForms 设为 true,并确保你的目标框架兼容 WinForms。

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <!-- 添加下面这两行 -->
    <UseWindowsForms>true</UseWindowsForms>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
</Project>

完美解决!

标签:5.0,FolderBrowserDialog,Windows,System,Forms,文件夹,NET,WPF
From: https://www.cnblogs.com/Katakana/p/17971213

相关文章

  • net6 webapi swagger 中文\版本说明
    1、新建ApiVersionInfo.cs版本文件;///<summary>///API版本///</summary>publicclassApiVersionInfo{publicstaticstring接口版本1;}右键编辑项目文件;<PropertyGroup><GenerateDocumentationFile>true</GenerateDocumentationFile>......
  • net6 webapi cors 跨域
    1、nuget安装microsoft.aspnetcore.cors2、program.cs文件中usingSystem.Reflection;usingMicrosoft.OpenApi.Models;varbuilder=WebApplication.CreateBuilder(args);//设置跨域builder.Services.AddCors(options=>{options.AddPolicy("Cors",builder......
  • 前后端分离,Asp.net core webapi 简单 2 步,轻松配置跨域
    前言可以说,前后端分离已经成为当今信息系统项目开发的主流软件架构模式,微服务的出现,让前后端分离发展更是迅速,大量优秀的前端框架如vue.js、react的出现,也让前后端分离趋势加快。所谓的前后端分离软件架构模式,就是指将前端和后端的开发完全分离,后端负责提供API接口和数据处理......
  • 掌上医院预约挂号源码,uni-app+.net公众号、支付宝小程序预约挂号平台
    线上预约挂号系统构建了医院和患者的连接,通过改善患者院内的就医服务流程,以公众号、支付宝小程序为服务入口,为居民提供导诊、预约、支付、报告查询等线上线下一体化的就医服务,缩短患者就诊环节,提高医疗机构服务效率。●与医院HIS系统深度融合,实现诊疗业务及数据线上线下的双向传......
  • C# 自定义日志中间件 ASP.NET Core Web API
    自定义日志中间件usingMicrosoft.AspNetCore.Builder;usingMicrosoft.AspNetCore.Http;usingMicrosoft.AspNetCore.Http.Extensions;usingMicrosoft.Extensions.DependencyInjection;usingMicrosoft.Extensions.Logging;usingNewtonsoft.Json;usingSystem;usingS......
  • C# 下载文件 (ASP.NET Core Web API )
    usingMicrosoft.AspNetCore.Mvc;usingSystem.IO;usingMicrosoft.AspNetCore.Hosting;usingMicrosoft.AspNetCore.Authorization;usingMicrosoft.Extensions.Logging;usingMicrosoft.AspNetCore.StaticFiles;usingSystem.Threading.Tasks;namespaceFCore.Saas.......
  • docker发布.net项目
    要使用Docker发布.NET压缩文件程序并控制版本,你可以按照以下步骤进行操作:创建Dockerfile:在你的项目根目录下创建一个名为Dockerfile的文件,用于定义Docker镜像的构建过程。Dockerfile是一个文本文件,其中包含一系列指令,用于构建镜像。以下是一个示例的Dockerfile:#使用......
  • ASP.NET Core 中AOP(面向切面编程)的支持方式
    在ASP.NETCore中,AOP(面向切面编程)的支持可以通过以下方式实现:过滤器(Filters):ASP.NETCore提供了多种类型的过滤器:身份验证过滤器(AuthenticationFilters):用于验证用户身份。例如,[Authorize] 属性可以应用在控制器或动作方法上,确保只有经过身份验证的用户才能访问。授权......
  • .net core 中什么是中间件
    在.NETCore中,中间件(Middleware)是ASP.NETCore应用程序处理请求和响应的组件。中间件位于应用程序的请求处理管道中,它可以截获请求,执行一些逻辑,并将请求传递给下一个中间件或终止请求的执行。中间件的主要作用是实现横切关注点,处理跨请求的功能和任务,例如身份验证、异常处理......
  • kubernetes限制命名空间的磁盘
    kubernetes限制命名空间的磁盘只有requests没有limits,其中requests限制了请求的大小,但是限制不了实际使用的大小磁盘的requests限制apiVersion:v1kind:ResourceQuotametadata:name:namespace-quotaspec:hard:requests.storage:60Gi申请指定sc的requests......