时间:2023-09-09 00:00:16 来源:本站 人气:
Windows 社区工具包带着巨大的更新回来了,其中包含一系列改进和功能。微软很高兴地宣布 8.0 版本今天发布!在微软开发者社区的支持和贡献下再次成为可能。
如果您是该工具包的新手,Windows 社区工具包是面向 WinUI 2、WinUI 3 和 Uno Platform 开发人员的控件集合!它简化并演示了使用 .NET 为 Windows 10 和 Windows 11 构建体验的常见开发人员任务。该工具包是.NET Foundation的一部分。您可以从 Microsoft Store下载微软的示例库,以便在开始项目之前发现并尝试 Toolkit 组件。您可以在此处找到介绍视频。
此更新是对 Windows 社区工具包从上到下构建和发布方式的彻底重新设计。请务必阅读微软的重大变更和迁移说明!
在发布 WinUI 3 和 WindowsAppSDK 的 7.x 版本后,微软意识到维护具有完全不同的命名空间、包标识和代码库的工具包的两个独立分支是不可行的。因此,微软制定了一项计划,彻底改变微软在工具包上的工作方式,不仅使微软能够从单个代码库瞄准多个平台,而且使开发、维护和贡献Toolkit 组件变得更加容易。
主要更新内容:
重大变化
统一命名空间
包命名
删除的功能
迁移注意事项
原始存储库
由于一些原因,微软重组了许多软件包,但主要的好处是它允许开发人员在多个平台之间定位或迁移,从而轻松迁移在 8.0 上编写的代码,而无需更改其源代码。它还使库开发人员能够轻松地使用 XAML 实现多目标组件。
无论您使用哪些新功能和包(见下文),包内代码的命名空间现在都统一为. 这确保了如果您针对多个平台或在它们之间迁移,则无需更改引用工具包的代码(只需更改包)!CommunityToolkit.WinUI.*
以前,从 7.x 开始,UWP 包以 开头并具有类似的命名空间,而 WindowsAppSDK 包以 开头并具有类似的命名空间。有关微软的包身份之旅的更多信息,请参阅此博客。这些包将被弃用并指向其 8.0 等效项(继续阅读)。Microsoft.Toolkit.Uwp.UI.*CommunityToolkit.WinUI.UI.*
现在每个组件都有两组包:
CommunityToolkit.Uwp.*适用于 UWP + WinUI 2 或 Uno.UI
CommunityToolkit.WinUI.*适用于 Windows 应用程序 SDK + WinUI 3 或 Uno.WinUI
无论选择哪个包,如上所述,所有名称空间都已收敛(请注意删除了名称空间和包名称中的附加项)。CommunityToolkit.WinUI.*.UI.
如果您使用Uno Platform,现在可以在您的各个平台头中使用相同的包!只需确保选择与Windows平台头的目标相对应的包,或者分别选择与和相对应的 Windows App SDK 。.Uwp..WinUI.Uno.UIUno.WinUI删除的功能
工具包很大!在过去7年里,它添加了很多功能。不幸的是,这意味着微软无法在此初始过渡中迁移所有内容。此外,由于平台限制或未实现的 API,某些功能可能无法在所有平台上使用。
微软最初的重点是UWP和Windows App SDK兼容性,其次是Web Assembly (WASM)。如果您在特定平台上发现问题,请告知微软,但如果缺少 API,微软可能会将您转至底层平台的存储库。
以下是此版本中未包含的已知内容的部分列表:
AdaptiveGridView –请参阅 UniformGridLayout 的 ItemsRepeater。
DataGrid – DataGrid 是一个自己的项目,拥有超过 30k 行代码...同时,请查看Windows Community Toolkit Labs DataTable实验。
DropShadowPanel – 这已被微软自己的附加阴影所Extensions取代Media。
Expander – 这是现在 WinUI 的一部分。
InAppNotification – 此控件已被StackedNotificationsBehavior微软的Behaviors包中的 取代,以构建在平台控件之上InfoBar。
MarkdownTextBlock – 该控件有一个自定义 Markdown 解析器,因此微软不想移植现有的代码库。然而,社区正在致力于基于优秀的Markdig库在WCT Labs PR中进行替代。
菜单– 现在这是 WinUI 的一部分,请参阅MenuBar。
通知 – Toolkit 中的通知助手已迁移到Windows App SDK,请参阅此处的文档以开始使用。将问题直接发送给 WindowsAppSDK。
RadialGradientBrush – 这是现在 WinUI 的一部分。
RadialProgressBar – 现在这是 WinUI 的一部分,请参阅ProgressRing 文档并将 IsInminated 设置为 false。
XAML 群岛助手– 此存储库中的工具不再维护。XAML Island 是Windows App SDK的一部分,在 v1.4 中发布。将问题直接发送给 WindowsAppSDK。
请务必阅读上面其余的重大变更说明!