winui vue_WinUI 3.0:Windows控件的未来

winui vue

很难选择Windows UI框架。 毕竟,有很多。 您是否使用熟悉的WinForms,更现代的Windows Presentation Framework或Windows 10的Universal Windows Platform构建应用程序?

每个控件都有其优缺点,它们具有不同的控件集,设计工具和受支持的Windows版本。 它们支持不同的设计语言,仅通用Windows平台(UWP)控件提供对最新Fluent外观的支持。 微软一直在努力通过XAML Islands等工具将新的W​​indows 10 UWP控件移植到较旧的框架中。 它们是一个不错的选择,但仅限于在Windows 10上运行。

[从IDE到测试框架: Windows管理员必备的devops工具 | 《 InfoWorld》评论: Chef 12激发了开发人员 ]

Windows UI的新方法

真正需要的是一种全新的方法来交付Windows UI组件和控件,该方法与底层OS分离,并且能够在Windows 10以上版本,老版本和Web等其他平台上提供相同的功能。 毫无疑问,作为WinUI控件库的一部分,该项目已经进行了一段时间。 Windows UI库的早期版本专注于UWP和Fluent Design。 下一个重要版本 WinUI 3.0将最终退出UWP框架, 在2020年某个时候支持整个本机Windows UI平台

微软最近发布了WinUI 3.0的Alpha版本 。 它绝不是完整的,缺少许多流行的控件。 但是,这是从新控件以及安装和使用新控件的方式开始的好地方。 作为Alpha代码,它尚未准备好投入生产,但仅供您尝试并向开发团队提供反馈。

使用WinUI 3.0 alpha版本

WinUI 3.0的入门非常容易,因为Microsoft在GitHub上具有XAML Controls库的WinUI 3.0预览版的代码。 您可以克隆存储库并构建示例应用程序以查看可用的控件。 该示例确实需要最新版本的Visual Studio(我建议使用Visual Studio 2019)和Windows 10 1803或更高版本。 如果您正在使用C ++代码,则需要为.NET Desktop和UWP开发配置Visual Studio,以及等效的C ++工具。 最大的变化可能是迁移到新的命名空间:从Windows.UI到Microsoft.UI。

我能够在几分钟内启动并运行示例代码 ,使用Git bash工具克隆示例应用程序的WinUI 3.0 Alpha分支,然后在Visual Studio 2019 Community Edition中进行编译。 加载后,您将获得可用控件的列表,单击它们会显示示例代码以及控件的渲染实例。 这是查看可用控件以及如何在应用程序中使用它们的好方法。 缺少的控件显示为灰色,因此您可以查看未来版本的计划。

通过注册WinUI 3.0 alpha ,您可以访问Visual Studio扩展,该扩展添加了新的WinUI 3.0特定模板。 如果要构建新的WinUI应用程序,则非常值得安装,因为它使您开始使用运行时组件的模板以及.NET和C ++的空白应用程序。 如果找不到您要使用的所有控件,请不要担心。 这只是一个alpha版本,一些通用控件尚未为新框架重写。 随着2020年某个时候的发布,他们还有足够的时间来发布将来的alpha和beta版本。

将用户界面与Windows分开

WinUI过渡中最重要的部分也许是UI控件与其余Windows SDK的分离。 这是一项重要的更改,它使我们最终可以从底层操作系统中单独更新UI控件,甚至允许社区将其作为开源项目的一部分进行处理。 这是一个令人惊讶的大转变,将UI从Windows转移到了NuGet。 今天,如果列表框控件中存在错误,我们必须等待下半年半年的Windows更新来进行修复。 使用WinUI 3.0,我们将能够从NuGet下载更新的控件,重建我们的应用程序,然后发布更新。

UI与Windows SDK其余部分的分离应该使更新SDK的其余部分更加容易。 如果WinUI可以成功过渡到NuGet,则很显然,我们可以逐步开发Windows SDK的更多元素,并在相同的过程中发送它们。 这应该有助于推动.NET Core和将来的.NET 5.0在Windows应用程序开发中的采用,从而使其能够在Windows开发时间表之外发展。 Windows的新版本始终需要Windows SDK的新版本,但是没有理由不应该在半年周期之外继续发展,修复错误并添加新的API和功能。

通过WASM跨平台

微软为WinUI 3.0制定了宏伟计划。 尤为重要的是, 它与构建Uno Platform Web程序集控件的团队建立了合作关系 ,后者承诺使用WinUI 3.0控件库的浏览器托管版本。 随着Microsoft承诺将其新的基于Chromium的Edge浏览器的版本交付回Windows 7,以及在Linux和macOS上,您将能够使用这些控件以及Blazor的.NET Web程序集实现来交付WinUI 3.0所有其他平台的应用程序。

交付跨平台的,向后兼容的 (在一定程度上)WinUI是明智的一步。 我们生活在一个用户可以选择并且计算是异构的世界中。 如果开发人员想要最大范围的发展,那么我们需要像这样的工具,这些工具不仅可以跨现代.NET实现交付,还可以通过任何可用的方式交付给较旧的平台。 将WebAssembly用于WinUI非常有意义,因为它是真正的跨平台UI环境。

即使我们只有alpha版本,这里也有很多喜欢的东西。 WinUI 3.0工具是熟悉且易于使用的,可轻松将现有的UWP代码移动到新的UI框架。 对C ++ Win32应用程序的支持将为您提供将Fluent Design引入WPF或WinForms代码的机会,而无需跳过XAML Islands圈。 有了很多的希望,很难等待2020年和全面上市。

翻译自: https://www.infoworld.com/article/3453027/winui-30-the-future-of-windows-controls.html

winui vue

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinUI 控件、UWP 控件、WPF 控件和 Silverlight 控件在语法和结构上有所不同,因此可以通过检查 XAML 代码的命名空间来区分它们。以下是一些常见的命名空间和控件: - WinUI 控件:命名空间为 `http://schemas.microsoft.com/winui/2021/xaml/behaviors` 或 `http://schemas.microsoft.com/winui/2021/xaml/presentation`,控件名称以 `Microsoft.UI` 开头。 - UWP 控件:命名空间为 `http://schemas.microsoft.com/winfx/2006/xaml/presentation` 或 `http://schemas.microsoft.com/winfx/2008/xaml/presentation`,控件名称以 `Windows.UI` 开头。 - WPF 控件:命名空间为 `http://schemas.microsoft.com/winfx/2006/xaml/presentation` 或 `http://schemas.microsoft.com/netfx/2007/xaml/presentation`,控件名称以 `System.Windows` 或 `Microsoft.Windows` 开头。 - Silverlight 控件:命名空间为 `http://schemas.microsoft.com/winfx/2006/xaml/presentation` 或 `http://schemas.microsoft.com/client/2007`,控件名称以 `System.Windows.Controls` 或 `Microsoft.Windows.Controls` 开头。 可以通过读取 XAML 文件中的命名空间来确定使用的控件类型。例如,以下代码片段演示了如何读取 XAML 文件中的命名空间: ```csharp using System.Xml.Linq; // Load XAML file into an XDocument XDocument xdoc = XDocument.Load("MyXamlFile.xaml"); // Get the root element of the XAML file XElement root = xdoc.Root; // Get the default namespace of the XAML file XNamespace ns = root.GetDefaultNamespace(); // Check the namespace to determine the type of controls used in the XAML file if (ns.NamespaceName.StartsWith("http://schemas.microsoft.com/winui")) { // WinUI controls } else if (ns.NamespaceName.StartsWith("http://schemas.microsoft.com/winfx")) { // UWP or WPF controls } else if (ns.NamespaceName.StartsWith("http://schemas.microsoft.com/client")) { // Silverlight controls } else { // Unknown namespace } ``` 请注意,这只是一种简单的方法来区分不同类型的控件,实际上还需要考虑一些其他因素,例如控件的属性和行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值