.NET Core上的OpenFileDialog

Vin*_*rto 2 c# openfiledialog .net-core

在.NET Framework上,您可以将System.Windows.Forms.OpenFileDialog用于具有本机Windows UI的打开文件,但这仅适用于Windows.

.Net Core或其他替代方案有一个System.Windows.Forms.OpenFileDialog实现?

mm8*_*mm8 14

由于 .NET Core 增加了对 Windows 桌面应用程序的支持,WPF 和面向.NET Core 的Windows 窗体应用程序可以像在 .NET Framework 中一样使用OpenFileDialogSaveFileDialogAPI。

这些 API 已移植到位于 .NET Core 3 及更高版本之上的 Windows 特定桌面包。


Mar*_*ark 6

使用 WPF 控件的新的闪亮 .NET 5.0 Windows 应用程序可以使用库中的OpenFileDialog()方法Microsoft.Win32。它与 Windows 窗体版本不同,例如 -ShowDialog()方法返回bool?而不是DialogResult.

这是示例 MyWpfView.xaml.cs 代码:

using Microsoft.Win32;
using System.Windows;

namespace TestProject {     
    public partial class MyWpfView 
    {
        public MyWpfView()
        {
            InitializeComponent();
        }
        
        private void BrowseButton_Click(object sender, RoutedEventArgs e)
        {
            var fileDialog = new OpenFileDialog();
            if (fileDialog.ShowDialog() == true)
            {
                FileTextBox.Text = fileDialog.FileName;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Oma*_*jid 5

.NET Core本身不包含任何UI的API.例如,https://docs.microsoft.com/en-us/dotnet/api/?view = netcore-2.0&term = File显示没有任何相关性.这也是.NET Core开发人员目前的立场:https: //github.com/dotnet/core/issues/374

有几个外部库可以在特定平台上运行:

如果你并没有真正依赖.NET Core本身.UWP(建立在.NET标准之上,但与.NET Core不同)也可能是一个选项.