{"id":697,"date":"2023-09-07T11:30:43","date_gmt":"2023-09-07T18:30:43","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/?p=697"},"modified":"2023-09-07T11:30:43","modified_gmt":"2023-09-07T18:30:43","slug":"announcing-windows-community-toolkit-v8-0","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/announcing-windows-community-toolkit-v8-0\/","title":{"rendered":"Announcing Windows Community Toolkit v8.0"},"content":{"rendered":"<h1 id=\"announcing-windows-community-toolkit-v8.0\">Announcing Windows Community Toolkit v8.0<\/h2>\n<p>\ud83c\udf89\ud83c\udf89\ud83c\udf89 It&#8217;s here! The Windows Community Toolkit is back with a <strong>huge<\/strong> update with an array of improvements and features. We&#8217;re happy to announce that version 8.0 is available today! Made possible again with the support and contributions of our developer community. \ud83c\udf89<\/p>\n<p>If you&#8217;re new to the Toolkit, the Windows Community Toolkit is a collection of controls for WinUI 2, WinUI 3, and Uno Platform developers! It simplifies and demonstrates common developer tasks building experiences for Windows 10 and Windows 11 with .NET. The Toolkit is part of the <a href=\"https:\/\/dotnetfoundation.org\/\">.NET Foundation<\/a>. You can <a href=\"https:\/\/aka.ms\/windowstoolkitapp\">download our Sample Gallery<\/a> from the Microsoft Store to discover and try Toolkit components before getting started on your project. You can find an <a href=\"https:\/\/www.youtube.com\/watch?v=wG67xSIlask\">introduction video here<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Header.light_.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-698\" src=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Header.light_.png\" alt=\"Image Header light\" width=\"972\" height=\"506\" srcset=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Header.light_.png 972w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Header.light_-300x156.png 300w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Header.light_-768x400.png 768w\" sizes=\"(max-width: 972px) 100vw, 972px\" \/><\/a><\/p>\n<p>This update is a <strong>complete re-work<\/strong> of how the Windows Community Toolkit is built and published from top-to-bottom. <em>Be sure to read our breaking changes and migration notes!<\/em><\/p>\n<p>After shipping our 7.x releases for WinUI 3 and the WindowsAppSDK, we realized it wasn&#8217;t going to be feasible to maintain <em>two independent branches<\/em> of the Toolkit with completely different namespaces, package identities, and codebases. Therefore, we set out with a plan to overhaul how we worked on the toolkit to not only allow us to target multiple platforms from a <em><strong>single-codebase<\/strong><\/em> but make it much easier to <strong>develop<\/strong>, <strong>maintain<\/strong>, and <strong>contribute<\/strong> Toolkit components.<\/p>\n<h2 id=\"at-a-glance\">At a Glance \ud83d\udd0d<\/h2>\n<ul>\n<li><a href=\"#changes\">Breaking Changes<\/a> \ud83d\udea8\n<ul>\n<li><a href=\"#namespace\">Unified Namespace<\/a> \ud83d\udc8d<\/li>\n<li><a href=\"#packagenaming\">Package Naming<\/a> \ud83d\udce6<\/li>\n<li><a href=\"#removed\">Removed Features<\/a> \ud83e\uddb4<\/li>\n<li><a href=\"#migration\">Migration Notes<\/a> \ud83d\ude9a<\/li>\n<li><a href=\"#original\">Original Repository<\/a> \ud83d\udcfc<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#features\">New Features<\/a> \u2728\n<ul>\n<li><a href=\"#gallery\">New Gallery and Samples<\/a><\/li>\n<li><a href=\"#sizers\">GridSplitter, ContentSizer, and PropertySizer<\/a><\/li>\n<li><a href=\"#headered\">HeaderedTreeView<\/a><\/li>\n<li><a href=\"#segmented\">Segmented Control<\/a><\/li>\n<li><a href=\"#settings\">Settings Controls<\/a><\/li>\n<li><a href=\"#notifications\">StackedNotificationsBehavior<\/a><\/li>\n<li><a href=\"#styling\">Component Styles<\/a><\/li>\n<li><a href=\"#packages\">Packages\/Feature Overview<\/a> \ud83d\udce6<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#filenew\">Using in New Projects<\/a><\/li>\n<li><a href=\"#existing\">Using in Existing Projects<\/a><\/li>\n<li><a href=\"#labs\">Windows Community Toolkit Labs<\/a> \ud83e\uddea<\/li>\n<li><a href=\"#contribute\">Feedback &amp; Contributing<\/a><\/li>\n<\/ul>\n<h2 id=\"new-package-structure-breaking-changes\"><a name=\"changes\"><\/a> New Package Structure &amp; Breaking Changes \ud83d\udea8<\/h2>\n<p>If you&#8217;ve been following our <a href=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/windows-community-toolkit-8-0-pre-release\/\">previous blogs<\/a>, you know we&#8217;ve made changes to how namespaces and packages work with 8.0.<\/p>\n<p>We&#8217;ve restructured many packages for a few reasons, but the main benefit is it allows developers targeting or migrating between multiple platforms to easily migrate code written on 8.0 without having to change their source. It also enables library developers to multi-target components with XAML easily.<\/p>\n<h3 id=\"one-namespace-to-rule-them-all\"><a name=\"namespace\"><\/a> One namespace to rule them all \ud83d\udc8d<\/h3>\n<p>Regardless of which new features and packages you use (<a href=\"#features\">see below<\/a>), the <strong>namespaces<\/strong> for code within the packages are now <strong>unified<\/strong> with a root of <code>CommunityToolkit.WinUI.*<\/code>. This ensures that if you target multiple platforms or migrate between them, no code referencing the Toolkit needs to change (just the package)!<\/p>\n<h3 id=\"package-naming\"><a name=\"packagenaming\"><\/a> Package Naming \ud83d\udce6<\/h3>\n<p>Previously, starting with 7.x, UWP packages started with <code>Microsoft.Toolkit.Uwp.UI.*<\/code> and had similar namespaces, and WindowsAppSDK package started wih <code>CommunityToolkit.WinUI.UI.*<\/code> and had a similar namespace. <a href=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/windows-community-toolkit-for-project-reunion-0-5\/#package-identity-and-renaming\">See this blog for more information on our package identity journey<\/a>. These packages will be deprecated and point to their 8.0 equivalents (continue reading).<\/p>\n<p>There are now two sets of packages for each component:<\/p>\n<ul>\n<li><code>CommunityToolkit.Uwp.*<\/code> for UWP + WinUI 2 or Uno.UI<\/li>\n<li><code>CommunityToolkit.WinUI.*<\/code> for Windows App SDK + WinUI 3 or Uno.WinUI<\/li>\n<\/ul>\n<p>Regardless of the package chosen, as mentioned above, all namespaces have converged on <code>CommunityToolkit.WinUI.*<\/code> (<em>note the dropping of the additional <code>.UI.<\/code><\/em> in namespace and package names).<\/p>\n<p>If you&#8217;re using <a href=\"https:\/\/platform.uno\">Uno Platform<\/a>, the <strong>same<\/strong> package can be used across your various platform heads now! Just be sure to select the package that corresponds to the target of your <strong>Windows<\/strong> platform head, either <code>.Uwp.<\/code> or <code>.WinUI.<\/code> for the Windows App SDK corresponding to <code>Uno.UI<\/code> and <code>Uno.WinUI<\/code>, respectively.<\/p>\n<h3 id=\"removed-features\"><a name=\"removed\"><\/a> Removed Features \ud83e\uddb4<\/h3>\n<p>The Toolkit is huge! It&#8217;s had a lot of features added over the course of the last <strong>7<\/strong> years. Unfortunately, this means we couldn&#8217;t migrate everything in this initial transition. Also, some features may not be available on all platforms due to platform limitations or unimplemented APIs.<\/p>\n<p>Our initial focus has been on <strong>UWP<\/strong> and <strong>Windows App SDK<\/strong> compatibility, followed by <strong>Web Assembly (WASM)<\/strong>. If you find an issue on a particular platform, <a href=\"https:\/\/github.com\/CommunityToolkit\/Windows\/discussions\">please let us know<\/a>, but we may defer you to the underlying platform&#8217;s repository if an API is missing.<\/p>\n<p>If there&#8217;s a feature from the Toolkit that wasn&#8217;t migrated (and <strong>not<\/strong> listed below), <a href=\"https:\/\/github.com\/CommunityToolkit\/Windows\/discussions\">open a discussion<\/a> to garner support for future migration or to get information on contributing to migrate it for everyone.<\/p>\n<p>The following is a partial list of <em>known things<\/em> which are <strong>not<\/strong> included in this release:<\/p>\n<ul>\n<li>AdaptiveGridView &#8211; <a href=\"https:\/\/learn.microsoft.com\/windows\/apps\/design\/controls\/items-repeater#uniformgridlayout\">See UniformGridLayout for ItemsRepeater<\/a>.<\/li>\n<li>DataGrid &#8211; DataGrid is a project of its own with over 30k lines of code\u2026 In the meantime, check out the <a href=\"https:\/\/aka.ms\/toolkit\/labs\/windows\">Windows Community Toolkit Labs<\/a> <a href=\"https:\/\/github.com\/CommunityToolkit\/Labs-Windows\/discussions\/415\">DataTable<\/a> experiment.<\/li>\n<li>DropShadowPanel &#8211; This has been replaced by our own Attached Shadows in the <code>Extensions<\/code> and <code>Media<\/code> package.<\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/windows\/apps\/design\/controls\/expander\">Expander<\/a> &#8211; This is part of WinUI now.<\/li>\n<li>InAppNotification &#8211; This control has been replaced by the <code>StackedNotificationsBehavior<\/code> in our <code>Behaviors<\/code> package to build on top of the platform <code>InfoBar<\/code> control.<\/li>\n<li>MarkdownTextBlock &#8211; This control had a custom Markdown Parser, we didn&#8217;t want to port the existing codebase because of this. However, the community is working on a replacement in a <a href=\"https:\/\/github.com\/CommunityToolkit\/Labs-Windows\/pull\/480\">WCT Labs PR here<\/a> based on the excellent <a href=\"https:\/\/github.com\/xoofx\/markdig\">Markdig<\/a> library.<\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/windows\/apps\/design\/controls\/menus#create-a-menu-bar\">Menu<\/a> &#8211; This is part of WinUI now, see <code>MenuBar<\/code>.<\/li>\n<li>Notifications &#8211; The notification helpers in the Toolkit have migrated to the <a href=\"https:\/\/aka.ms\/windowsappsdk\">Windows App SDK<\/a>, see their <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/apps\/windows-app-sdk\/notifications\/app-notifications\/\">documentation here<\/a> to get started. <a href=\"https:\/\/aka.ms\/windowsappsdk\">Direct issues to the WindowsAppSDK.<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/windows\/winui\/api\/microsoft.ui.xaml.media.radialgradientbrush\">RadialGradientBrush<\/a> &#8211; This is part of WinUI now.<\/li>\n<li>RadialProgressBar &#8211; This is part of WinUI now, see <a href=\"https:\/\/learn.microsoft.com\/windows\/apps\/design\/controls\/progress-controls#progressring---determinate\">ProgressRing documentation and set IsIndeterminate to false<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/CommunityToolkit\/Microsoft.Toolkit.Win32\">XAML Islands Helpers<\/a> &#8211; The tooling in this repository is no longer maintained. XAML Islands is part of the <a href=\"https:\/\/aka.ms\/windowsappsdk\">Windows App SDK<\/a> and <a href=\"https:\/\/learn.microsoft.com\/windows\/apps\/windows-app-sdk\/stable-channel#xaml-islands-no-longer-experimental\">shipped in v1.4<\/a>. <a href=\"https:\/\/aka.ms\/windowsappsdk\">Direct issues to the WindowsAppSDK.<\/a><\/li>\n<\/ul>\n<h3 id=\"migration-notes\"><a name=\"migration\"><\/a> Migration Notes \ud83d\ude9a<\/h3>\n<p><em>Be sure to read the rest of the breaking change notes above!<\/em> \ud83d\ude09<\/p>\n<p>Most UI controls have their own package now under <code>CommunityToolkit.&lt;Uwp|WinUI&gt;.Controls.*<\/code>; we&#8217;re working to have a meta package again, but <em>do not have one at this time<\/em>.<\/p>\n<p>For individual grouped control packages of 7.x, you can find the following changes:<\/p>\n<ul>\n<li>From Controls.Core:\n<ul>\n<li><code>DropShadowPanel<\/code> has been replaced with <strong>Attached Shadows<\/strong> in the <code>Extensions<\/code> and <code>Media<\/code> packages.<\/li>\n<li><code>InAppNotification<\/code> is now the <code>StackedNotificationsBehavior<\/code> for WinUI&#8217;s <code>InfoBar<\/code> in the <code>Behaviors<\/code> package.<\/li>\n<li><code>Menu<\/code> is part of WinUI now, see <code>MenuBar<\/code>.<\/li>\n<li><code>RadialProgressBar<\/code> is part of WinUI&#8217;s <code>ProgressRing<\/code> now, IsIndeterminate=\u201cFalse\u201d.<\/li>\n<\/ul>\n<\/li>\n<li>From Controls.Layout:\n<ul>\n<li><code>Expander<\/code> is part of WinUI now.<\/li>\n<li><code>GridSplitter<\/code> is part of the <code>Sizers<\/code> package, it&#8217;s also been entirely re-written, but with defaults should look\/behave the same, if not better!<\/li>\n<li>\u201cHeadered\u201d controls are part of the <code>HeaderedControls<\/code> package, <code>HeaderedItemsControl<\/code> now uses <code>ItemsPresenter<\/code>&#8216;s <code>Header<\/code> and <code>Footer<\/code> <strong>new<\/strong>, <code>Orientation<\/code> has been removed, customize the <code>ItemsPanel<\/code> instead.<\/li>\n<\/ul>\n<\/li>\n<li>For parts of the <code>Uwp\/WinUI<\/code> and <code>Uwp\/WinUI.UI<\/code> packages, look for our <code>Collections<\/code>, <code>Converters<\/code>, <code>Extensions<\/code>, <code>Helpers<\/code>, and <code>Triggers<\/code> packages.<\/li>\n<\/ul>\n<p>Other controls either have their own package or have not been migrated yet. <a href=\"https:\/\/github.com\/CommunityToolkit\/Windows\/discussions\">Search and then open a discussion<\/a> if you need assistance.<\/p>\n<h3 id=\"what-about-the-original-repository\"><a name=\"original\"><\/a> What about the original repository? \ud83d\udcfc<\/h3>\n<p>The Toolkit has grown a lot since its inception, both in terms of the amount of code and the number of people using it. As we bring over components, we want to ensure they&#8217;re working across our supported platforms, well-documented, showcased with samples, thoroughly tested, and up-to-date with the latest Windows design language.<\/p>\n<p>We&#8217;ve brought over the <strong>most commonly used<\/strong> controls from the existing codebase already, but this <em>doesn&#8217;t include everything<\/em>. Future releases may include more, with a mix of new and prior components moved and improved to the new systems. Some things are even in the platform now <a href=\"#removed\">as seen above<\/a>! For those, we want to work on providing better guidance on how to utilize built-in equivalents for prior Toolkit components, if anything.<\/p>\n<p>The existing <code>WindowsCommunityToolkit<\/code> repository will be archived soon to provide better access to its codebase for future migrations. This should allow us to migrate issues and discussions as needed as well to our new repository and Windows Community Toolkit Labs.<\/p>\n<h2 id=\"new-features\"><a name=\"features\"><\/a> New Features \u2728<\/h2>\n<h3 id=\"new-gallery-samples\"><a name=\"gallery\"><\/a> New Gallery &amp; Samples<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SampleGallery.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-699\" src=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SampleGallery.png\" alt=\"Windows Community Toolkit Gallery Sample App showing a collection of available controls\" width=\"972\" height=\"506\" srcset=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SampleGallery.png 972w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SampleGallery-300x156.png 300w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SampleGallery-768x400.png 768w\" sizes=\"(max-width: 972px) 100vw, 972px\" \/><\/a><\/p>\n<p>The Toolkit Gallery app has undergone a major overhaul! It now has a sleek and modern design that integrates samples and documentation in single page, enabling us to integrate multiple (mini) samples into a single experience. This makes it easier for your to play around and explore a components feature set!\nOn top of that, we have added new and revamped existing samples so they are easier to understand.<\/p>\n<h3 id=\"overhauled-gridsplitter-now-with-contentsizer-and-propertysizer\"><a name=\"sizers\"><\/a> Overhauled GridSplitter, now with ContentSizer and PropertySizer<\/h3>\n<p>The new <code>Sizers<\/code> package introduces a revamped <code>GridSplitter<\/code> (adopting a modern look-and-feel, improved behavior, and more wpf polyfills) and two new controls: <code>ContentSizer<\/code> and <code>PropertySizer<\/code>. These controls allows you to make existing controls resizeable, like an expanded <code>NavigationView<\/code> or a pop-out drawer made with <code>Expander<\/code>.<\/p>\n<h3 id=\"headeredtreeview\"><a name=\"headered\"><\/a> HeaderedTreeView<\/h3>\n<p>The new <code>HeaderedControls<\/code> package (which contains the <code>HeaderedItemsControl<\/code> and <code>HeaderedContentControl<\/code> now introduces a new component: the <code>HeaderedTreeView<\/code>.<\/p>\n<h3 id=\"segmented-control\"><a name=\"segmented\"><\/a> Segmented Control<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SegmentedControl.png\"><img decoding=\"async\" class=\"size-full wp-image-700 alignnone\" src=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SegmentedControl.png\" alt=\"Shows two variations of the SegmentedControl styles\" width=\"407\" height=\"176\" srcset=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SegmentedControl.png 407w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SegmentedControl-300x130.png 300w\" sizes=\"(max-width: 407px) 100vw, 407px\" \/><\/a><\/p>\n<p>The new <code>Segmented<\/code> control lets users pick one of several options. This is a great control to allow users to e.g. set filters, or to changing a view. With new, built-in, styles you can easily customize this control to fit for your app experience.<\/p>\n<h3 id=\"settings-controls\"><a name=\"settings\"><\/a> Settings Controls<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SettingsControls.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-701\" src=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SettingsControls.png\" alt=\"Shows the SettingsCard and SettingsExpander controls\" width=\"803\" height=\"330\" srcset=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SettingsControls.png 803w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SettingsControls-300x123.png 300w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/SettingsControls-768x316.png 768w\" sizes=\"(max-width: 803px) 100vw, 803px\" \/><\/a><\/p>\n<p>The new <code>SettingsCard<\/code> and <code>SettingsExpander<\/code> makes it super easy to create great looking settings experiences: flexible, yet very simple to use. Some of our built-in apps (like Store, Photos and Media Player) are already powered by these new controls!<\/p>\n<h3 id=\"stackednotificationsbehavior\"><a name=\"notifications\"><\/a> StackedNotificationsBehavior<\/h3>\n<p>Replacing the <code>InAppNotification<\/code>, the new <code>StackedNotificationsBehavior<\/code> allows you to provide notifications within your app using an <code>InfoBar<\/code> control.<\/p>\n<h3 id=\"style-updates\"><a name=\"styling\"><\/a> Style Updates<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Restyling.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-702\" src=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Restyling.png\" alt=\"Shows updated styling for controls like RadialGauge, RangeSelector, TokenizingTextBox, and GridSplitter.\" width=\"820\" height=\"272\" srcset=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Restyling.png 820w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Restyling-300x100.png 300w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2023\/09\/Restyling-768x255.png 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/p>\n<p>We have updated our existing controls with a fresh coat of paint: they are now inline with WinUI and use compatible brushes, styles and meet a11y requirements!<\/p>\n<h3 id=\"packagesfeature-overview\"><a name=\"packages\"><\/a> Packages\/Feature Overview \ud83d\udce6<\/h3>\n<p>Search for either <code>CommunityToolkit.Uwp<\/code> or <code>CommunityToolkit.WinUI<\/code> (Windows App SDK), depending on your target platform, and one of the packages listed below should appear. Today&#8217;s release is version <code>8.0.230907<\/code>.<\/p>\n<ul>\n<li><strong>Animations<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Animations\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Animations\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>Behaviors<\/strong> \u2728 &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Behaviors\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Behaviors\">WinUI 3\/WindowsAppSDK<\/a> \u2728<\/li>\n<li><strong>Collections<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Collections\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Collections\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li>Controls &#8211; All the following packages are under the <code>CommunityToolkit.WinUI.Controls<\/code> namespace (see above):\n<ul>\n<li><strong>CameraPreview<\/strong> \ud83d\udcbb &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.CameraPreview\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.CameraPreview\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>HeaderedControls<\/strong> \u2728 &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.HeaderedControls\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.HeaderedControls\">WinUI 3\/WindowsAppSDK<\/a> \u2728<\/li>\n<li><strong>ImageCropper<\/strong> \ud83d\udcbb &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.ImageCropper\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.ImageCropper\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>LayoutTransformControl<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.LayoutTransformControl\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.LayoutTransformControl\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>MetadataControl<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.MetadataControl\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.MetadataControl\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>Primitives<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.Primitives\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.Primitives\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>RadialGauge<\/strong> \ud83d\udcbb\ud83c\udfa8\u2728 &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.RadialGauge\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.RadialGauge\">WinUI 3\/WindowsAppSDK<\/a> \u2728<\/li>\n<li><strong>RangeSelector<\/strong> \ud83c\udfa8 &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.RangeSelector\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.RangeSelector\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>RichSuggestBox<\/strong> \ud83d\udcbb\ud83c\udfa8 &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.RichSuggestBox\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.RichSuggestBox\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>Segmented<\/strong> \u2728 &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.Segmented\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.Segmented\">WinUI 3\/WindowsAppSDK<\/a> \u2728<\/li>\n<li><strong>SettingsControls<\/strong> \u2728 &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.SettingsControls\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.SettingsControls\">WinUI 3\/WindowsAppSDK<\/a> \u2728<\/li>\n<li><strong>Sizers<\/strong> \ud83c\udfa8\u2728 &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.Sizers\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.Sizers\">WinUI 3\/WindowsAppSDK<\/a> \u2728<\/li>\n<li><strong>TokenizingTextBox<\/strong> \ud83c\udfa8 &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Controls.TokenizingTextBox\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Controls.TokenizingTextBox\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<\/ul>\n<\/li>\n<li><strong>Converters<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Converters\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Converters\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>DeveloperTools<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.DeveloperTools\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.DeveloperTools\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>Extensions<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Extensions\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Extensions\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>Helpers<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Helpers\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Helpers\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>Lottie<\/strong> \ud83d\udcbb &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Lottie\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Lottie\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>Media<\/strong> \ud83d\udcbb &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Media\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Media\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<li><strong>Triggers<\/strong> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.Uwp.Triggers\">WinUI 2\/UWP<\/a> &#8211; <a href=\"https:\/\/nuget.org\/packages\/CommunityToolkit.WinUI.Triggers\">WinUI 3\/WindowsAppSDK<\/a><\/li>\n<\/ul>\n<p>\u2018\u2728\u2019 denotes new or updated packages\/features from version 7.1.<\/p>\n<p>\u2018\ud83c\udfa8\u2019 denotes updated XAML styling from version 7.1.<\/p>\n<p>\u2018\ud83d\udcbb\u2019 denotes packages which only target <em>UWP\/WindowsAppSDK<\/em>. However, its absence does not imply that every feature will work across all platforms (see note in introduction).<\/p>\n<p>\ud83d\udd25\ud83d\udc09 <strong>Note<\/strong>: <em>Mixing and matching<\/em> these new 8.0 packages with existing Windows Community Toolkit 7.x packages, especially UI controls, can lead to issues with the namespace changes and dependencies on common code (like the Visual Tree extensions). If there&#8217;s something that we haven&#8217;t yet ported but you need, <a href=\"https:\/\/github.com\/CommunityToolkit\/Windows\/discussions\">open a discussion<\/a> to let us know or claim it and contribute!<\/p>\n<h2 id=\"using-in-new-projects\"><a name=\"filenew\"><\/a> Using in New Projects<\/h2>\n<p>If you want to use our packages in a <a href=\"https:\/\/learn.microsoft.com\/windows\/apps\/winui\/winui2\/getting-started\">new UWP<\/a>, <a href=\"https:\/\/learn.microsoft.com\/windows\/apps\/winui\/winui3\/create-your-first-winui3-app\">Windows App SDK<\/a>, or <a href=\"https:\/\/platform.uno\/docs\/articles\/get-started-vs-2022.html\">Uno Platform<\/a> project, you can use the following instructions:<\/p>\n<ol>\n<li>In Visual Studio, right-click your application project (for Uno you can use the common Class Library Project), and select &#8220;<strong>Manage NuGet Packages<\/strong>&#8220;.<\/li>\n<li>Select a <a href=\"#packages\">package above<\/a> based on your target framework. For UWP\/Uno.UI\/WinUI2, use <code>.Uwp.<\/code> packages or for WindowsAppSDK\/Uno.WinUI\/WinUI3, use <code>.WinUI.<\/code> packages.<\/li>\n<li>Find that package in the search box.<\/li>\n<li>Click \u2018<strong>Install<\/strong>\u2019 on the right-hand side. You should see the version number starting with <code>8.0<\/code>.<\/li>\n<li><strong>For UWP\/Uno.UI<\/strong>, be sure the <a href=\"https:\/\/learn.microsoft.com\/windows\/apps\/winui\/winui2\/getting-started\">WinUI 2 Theme Resources have been set up<\/a>, if you&#8217;re using any UI Controls.<\/li>\n<\/ol>\n<p>And that should be it! Also check out <a href=\"https:\/\/nicksnettravels.builttoroam.com\/windows-community-toolkit-prerelease\/\">Nick&#8217;s great blog on getting started with the Toolkit and Uno Platform here.<\/a><\/p>\n<h2 id=\"using-in-existing-projects\"><a name=\"existing\"><\/a> Using in Existing Projects<\/h2>\n<p>If you have an existing project that is using the Windows Community Toolkit 7.1 packages, there&#8217;s a few changes you&#8217;ll need to make.<\/p>\n<ol>\n<li>Identify if you&#8217;re using UWP\/Uno.UI based packages or WindowsAppSDK\/Uno.WinUI based packages by looking at your application&#8217;s csproj file.\n<ul>\n<li><code>Microsoft.Toolkit.Uwp<\/code> or <code>Uno.Microsoft.Toolkit.Uwp<\/code> packages will map to <code>CommunityToolkit.Uwp<\/code>.<\/li>\n<li><code>CommunityToolkit.WinUI<\/code> or <code>Uno.CommunityToolkit.WinUI<\/code> packages will map to <code>CommunityToolkit.WinUI<\/code>.<\/li>\n<\/ul>\n<\/li>\n<li>Remove the old 7.1 packages from your project and add the new packages. <em>For Uno projects<\/em>, you can remove references from all platform projects and instead include a single reference in your Class Library project.<\/li>\n<li>Update all usings and xmlns includes to use the new base namespace of <code>CommunityToolkit.WinUI.*<\/code>. Note that the <code>.UI.<\/code> part of namespaces and packages has been removed. For UWP\/Uno.UI based projects, this should be <code>Microsoft.Toolkit.Uwp.*<\/code> currently.<\/li>\n<li>If you have trouble locating a component or API (see <a href=\"#changes\">above<\/a> also), search the <a href=\"https:\/\/github.com\/CommunityToolkit\/Windows\">new repository<\/a> to see which package it resides in. This will match the csproj file name in the <code>components\/*\/src\/<\/code> directory. We&#8217;ll provide a better mapping guide in the future.<\/li>\n<\/ol>\n<p>That should be it!<\/p>\n<p>We recommend that if you&#8217;re <em>also<\/em> migrating between UWP and WindowsAppSDK, you perform the Toolkit migration <strong>first<\/strong>. Once that&#8217;s complete and working, no other changes will need to be made to Toolkit code when migrating to the Windows App SDK. However, we do recommend switching package references from the <code>.Uwp.<\/code> to <code>.WinUI.<\/code> versions as a final step. By matching the proper packages, it allows migrating to Uno Platform for your project without requiring additional changes to Toolkit-based code (for packages that support Uno Platform).<\/p>\n<p>For further information, if you&#8217;re also upgrading to WinUI 3, see <a href=\"https:\/\/learn.microsoft.com\/windows\/apps\/get-started\/migrate-from-uwp-to-winappsdk\">platform documentation here<\/a> or <a href=\"https:\/\/platform.uno\/docs\/articles\/updating-to-winui3.html\">Uno&#8217;s documentation here<\/a>.<\/p>\n<h2 id=\"windows-community-toolkit-labs\"><a name=\"labs\"><\/a> Windows Community Toolkit Labs \ud83e\uddea<\/h2>\n<p>To help the process of starting new ideas and contributing to the Toolkit, we created <a href=\"https:\/\/aka.ms\/toolkit\/labs\/windows\">Windows Community Toolkit Labs<\/a> as a place where we can incubate and iterate over new ideas, try things out without worry, see what gets used by the community, and then decide to bring them into the main repository when they&#8217;re ready and well-tested.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/windows-community-toolkit-labs-experiments-are-here\/\">We&#8217;ve talked about Labs here before<\/a>, but the main goal is to help encapsulate our development processes from inception to polished product. It also helps us better understand what gets interest and excitement from our community before shipping something to our broader developer audience.<\/p>\n<p>The best way to get involved with the Toolkit is to get involved with Windows Community Toolkit Labs. <a href=\"https:\/\/aka.ms\/toolkit\/wiki\/previewpackages\">Setup the preview feed and pull down a package:<\/a>.<\/p>\n<pre><code>https:\/\/pkgs.dev.azure.com\/dotnet\/CommunityToolkit\/_packaging\/CommunityToolkit-Labs\/nuget\/v3\/index.json\r\n<\/code><\/pre>\n<p>Then provide feedback on that experiment, that&#8217;s all it takes to get started contributing!<\/p>\n<p><a href=\"https:\/\/github.com\/CommunityToolkit\/Labs-Windows\/discussions\">From there join in a discussion or start a new one<\/a> &#8211; we look forward to meeting you!<\/p>\n<h2 id=\"feedback-contributing\"><a name=\"contribute\"><\/a> Feedback &amp; Contributing<\/h2>\n<p>Not sure how to get started contributing? <em>Don&#8217;t worry!<\/em> Did you know that just providing feedback on what we&#8217;re doing and our new components <strong>is contributing<\/strong>?!?<\/p>\n<p>If you have a new idea for a control, API, or something, read more about <a href=\"#labs\">Windows Community Toolkit Labs above<\/a>.<\/p>\n<p><strong><a href=\"https:\/\/github.com\/CommunityToolkit\/Windows\/discussions\/228\">Join in our discussion about this 8.0 release on GitHub here<\/a>.<\/strong> We&#8217;re also active on <em>Discord<\/em> in the <a href=\"https:\/\/discord.gg\/eBHZSKG\">UWP Community<\/a> server <a href=\"https:\/\/discord.gg\/zBA5aCn\"><code>#community-toolkit<\/code> channel here<\/a>.<\/p>\n<p>You can also reach out on Social Media with the <code>#WindowsCommunityToolkit<\/code> hashtag. Find us at <a href=\"https:\/\/twitter.com\/XAMLLlama\">@XAMLLlama<\/a>, <a href=\"https:\/\/hachyderm.io\/@XAMLLlama\">@XAMLLlama@hachyderm.io<\/a>, <a href=\"https:\/\/twitter.com\/Niels9001\">@Niels9001<\/a>,\nand <a href=\"https:\/\/fosstodon.org\/@Arlodottxt\">@Arlodottxt@fosstodon.org<\/a>.<\/p>\n<p>If you&#8217;re interested in contributing documentation or code, here are a few extra steps:<\/p>\n<ul>\n<li>Take a look at <a href=\"https:\/\/github.com\/CommunityToolkit\/Windows\">our repository<\/a> and clone it.<\/li>\n<li>Use the <code>OpenSolution.bat<\/code> file for a component and try to build it following the steps in the readme.<\/li>\n<li>Back on GitHub, find an unclaimed TODO item for a component.<\/li>\n<li>Comment to chime in with what you&#8217;d like to do, and we can help you get started toward your first Pull Request (PR)!<\/li>\n<\/ul>\n<h2 id=\"about-uno-platform\">About Uno Platform<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2022\/11\/UnoPlatform.png\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-604\" src=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2022\/11\/UnoPlatform-300x88.png\" alt=\"Uno Platform Logo\" width=\"300\" height=\"88\" srcset=\"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2022\/11\/UnoPlatform-300x88.png 300w, https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-content\/uploads\/sites\/61\/2022\/11\/UnoPlatform.png 567w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>For those new to <a href=\"https:\/\/platform.uno\">Uno Platform<\/a> \u2013 it allows for creation of pixel-perfect, single-source C# and XAML apps which run natively on Windows, iOS, Android, macOS, Linux and Web via WebAssembly. It offers Figma integration for design-development handoff, and a set of extensions to bootstrap your projects. Uno Platform is free and Open Source (Apache 2.0) and <a href=\"https:\/\/github.com\/unoplatform\/uno\">available on\u202fGitHub<\/a>.<\/p>\n<p>\ud83d\ude4b\u200d\u2642\ufe0f <em>Not sure how to get started with WinUI 3, in general? Check out our <a href=\"https:\/\/www.youtube.com\/watch?v=WH-vRxvY95M\">video from .NET Conf<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Announcing Windows Community Toolkit v8.0 \ud83c\udf89\ud83c\udf89\ud83c\udf89 It&#8217;s here! The Windows Community Toolkit is back with a huge update with an array of improvements and features. We&#8217;re happy to announce that version 8.0 is available today! Made possible again with the support and contributions of our developer community. \ud83c\udf89 If you&#8217;re new to the Toolkit, the [&hellip;]<\/p>\n","protected":false},"author":41887,"featured_media":698,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[4,55,5,3,54,65,7],"class_list":["post-697","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ifdef-windows","tag-net","tag-uno-platform","tag-uwp","tag-windows-community-toolkit","tag-windowsappsdk","tag-winui2","tag-winui3"],"acf":[],"blog_post_summary":"<p>Announcing Windows Community Toolkit v8.0 \ud83c\udf89\ud83c\udf89\ud83c\udf89 It&#8217;s here! The Windows Community Toolkit is back with a huge update with an array of improvements and features. We&#8217;re happy to announce that version 8.0 is available today! Made possible again with the support and contributions of our developer community. \ud83c\udf89 If you&#8217;re new to the Toolkit, the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/posts\/697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/users\/41887"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/comments?post=697"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/posts\/697\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/media\/698"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/media?parent=697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/categories?post=697"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/ifdef-windows\/wp-json\/wp\/v2\/tags?post=697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}