5

使用.NET Core 3 预览版,可以在 .NET Core 平台上创建 WinForms 或 WPF“桌面应用程序”。

使用XAML 岛,可以在 WPF 应用程序中托管 UWP 控件。

.NET Core 3 及更高版本是否直接支持WinUI 库?还是从 WPF 应用程序开始并托管控件(NavigationView等)的最佳实践?

更新

dotnet new winformsdotnew new wpf将为各自的技术创建 .net 核心项目。

是否打算(或者是否已经有可能,如果是这样:如何)也支持类似dotnet new uwp 的东西,其中 UWP 样式控件是“默认”(通过引用 WinUI 库)而不是从 WPF 开始并使用 XAML 岛.

4

3 回答 3

3

.NET Core 3 允许您包含包含 WinForms 和 WPF 框架的 Windows 桌面 SDK。此 SDK 不是跨平台的,仅适用于 Windows。

XAML Islands v1 允许在 .NET Framework 和 .NET Core 3 中的 WPF 和 WinForms 中托管 UWP XAML 控件。但是,在 .NET Framework 中,仅支持操作系统附带的 UWP XAML 控件。.NET Core 3 没有这个限制;您可以托管第 3 方控件,无论是托管的(例如,用 C# 编写的)还是本机的(例如,用 C++/WinRT 编写的)。

WinUI 2 也是由 UWP XAML 团队创建的 UWP 控件库。这些控件的质量与收件箱操作系统控件相同。WinUI 2 控件未绑定到最新的 Windows 10 版本(与收件箱操作系统控件一样),它们在 1703 版本及更高版本上运行(下级支持)。您可以在 WinForms 或 WPF .NET Core 3 中的 XAML 岛内使用这些 WinUI 2 控件,但目前还不能与 .NET Framework 一起使用。

最后但同样重要的是,XAML Islands v1 仅适用于 Windows 10 1903 更新,即使该岛的内容适用于较旧的操作系统版本。

一些链接:

于 2019-10-01T20:33:31.580 回答
2

基于 .NET Core 3 的 WPF 应用程序通常应支持 XAML 岛。这里的区别只是运行时平台 - 通常 WPF 应用程序运行在完整的 .NET Framework 之上,现在也可以在 .NET Core 3 上运行它们。

如果它不起作用,请在WinUI GitHubCoreFX GitHub上报告问题。请记住,.NET Core 3 处于其第一个公共预览版中,因此此方案可能尚未经过全面测试。

于 2018-12-12T12:06:43.140 回答
2

.NET Core 3 及更高版本是否直接支持 WinUI 库?

不。.NET Core 仍然是 .NET 的跨平台版本,不依赖于 UWP、Windows 窗体或 WPF。这些桌面框架作为单独的仅 Windows 组件提供,位于 .NET Core 之上。

WinUI( Microsoft.UI.Xaml) 是面向目标的 UWP 平台的一组 UWP 控件uap10.0dotnet new uwp将创建一个在 .NET Core 上运行的 UWP 应用程序,您将能够Microsoft.UI.Xaml像往常一样在此类应用程序中使用该程序包。它仍然是 UWP 应用程序,而不是 WPF 应用程序。

于 2018-12-12T16:18:50.290 回答