加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 系统 > 正文

.net core 3.0 WPF中使用FolderBrowserDialog

发布时间:2021-01-09 17:05:54 所属栏目:系统 来源:网络整理
导读:前言 随着.net core 3.0 的发布,WPF 也可以在 core 平台上使用了。当前的 WPF 不支持跨平台,仅能够在 Windows 平台上使用。如果想体验 WPF 跨平台开发,可以访问开源项目Avalonia。不过当前的 WPF 已经可以满足我们的大部分使用需求了,毕竟使用 core 开

前言

随着.net core 3.0 的发布,WPF 也可以在 core 平台上使用了。当前的 WPF 不支持跨平台,仅能够在 Windows 平台上使用。如果想体验 WPF 跨平台开发,可以访问开源项目Avalonia。不过当前的 WPF 已经可以满足我们的大部分使用需求了,毕竟使用 core 开发起来很爽。这意味着不必在用户的机器上安装 .net framework 依赖环境,以独立的方式发布的软件,复制到任意一台 Windows 上就可以直接运行。

启程

当我们带着激动的心情开始新的 WPF 征程时,发现文件夹浏览器对话框(FolderBrowserDialog)无法使用了,就算我们输入引用using System.Windows.Forms;也发现编辑器报错:

.net core 3.0 WPF中使用FolderBrowserDialog

尝试像以往一样向引用中添加程序集时,发现引用管理器中已经没有了程序集这个选项了。

.net core 3.0 WPF中使用FolderBrowserDialog

在网上浏览半天,也没有发现什么有用的信息。不过在 dotnet/wpf 的一个issues中提及了这个问题。在该讨论中说可以使用 Windows forms 中的文件夹对话框,却没有说怎么使用。而这正是我们遇到的问题。

解决

我们不妨换一个思路来看待问题,查看源项目文件是怎样组成的。打开 wpf 项目文件,发现里面极其简洁。

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
</Project>

这也是 core 3.0 的一大改变,所有的默认引用将不再显示出现在项目文件中。而我们查看 forms 项目文件时也是如此,唯一的区别就是开关UseWPF改为了<UseWindowsForms>true</UseWindowsForms>。尝试将该开关写入 wpf 项目文件中后,发现编辑器报错取消了。并且文件夹对话框也可以使用了。这意味 wpf 和 forms 依旧可以共存。而使用者完全可以从forms项目改变开关就可以转为wpf项目。

/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();
    }
    private void OpenFolderDialog()
    {
        var fbd = new FolderBrowserDialog();
        fbd.ShowDialog();
    }
}

总结

本文章虽然极其简单,但在现今 core 3.0 的中文资料很少的情况下,相信对于新手还是有一定帮助的。故此记录,希望可以帮助到您。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读