v8.0.230907
See More Information in Release Blog Here
New Package Structure & Breaking Changes 🚨
If you've been following our previous blogs, you know we've made changes to how namespaces and packages work with 8.0.
We'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.
One namespace to rule them all 💍
Regardless of which new features and packages you use (see below), the namespaces for code within the packages are now unified with a root of CommunityToolkit.WinUI.*
. This ensures that if you target multiple platforms or migrate between them, no code referencing the Toolkit needs to change (just the package)!
Package Naming 📦
Previously, starting with 7.x, UWP packages started with Microsoft.Toolkit.Uwp.UI.*
and had similar namespaces, and WindowsAppSDK package started wih CommunityToolkit.WinUI.UI.*
and had a similar namespace. See this blog for more information on our package identity journey. These packages will be deprecated and point to their 8.0 equivalents (continue reading).
There are now two sets of packages for each component:
CommunityToolkit.Uwp.*
for UWP + WinUI 2 or Uno.UICommunityToolkit.WinUI.*
for Windows App SDK + WinUI 3 or Uno.WinUI
Regardless of the package chosen, as mentioned above, all namespaces have converged on CommunityToolkit.WinUI.*
(note the dropping of the additional .UI.
in namespace and package names).
If you're using Uno Platform, the same package can be used across your various platform heads now! Just be sure to select the package that corresponds to the target of your Windows platform head, either .Uwp.
or .WinUI.
for the Windows App SDK corresponding to Uno.UI
and Uno.WinUI
, respectively.
Removed Features 🦴
The Toolkit is huge! It's had a lot of features added over the course of the last 7 years. Unfortunately, this means we couldn't migrate everything in this initial transition. Also, some features may not be available on all platforms due to platform limitations or unimplemented APIs.
Our initial focus has been on UWP and Windows App SDK compatibility, followed by Web Assembly (WASM). If you find an issue on a particular platform, please let us know, but we may defer you to the underlying platform's repository if an API is missing.
If there's a feature from the Toolkit that wasn't migrated (and not listed below), open a discussion to garner support for future migration or to get information on contributing to migrate it for everyone.
The following is a partial list of known things which are not included in this release:
- AdaptiveGridView - See UniformGridLayout for ItemsRepeater.
- DataGrid - DataGrid is a project of its own with over 30k lines of code... In the meantime, check out the Windows Community Toolkit Labs DataTable experiment.
- DropShadowPanel - This has been replaced by our own Attached Shadows in the
Extensions
andMedia
package. - Expander - This is part of WinUI now.
- InAppNotification - This control has been replaced by the
StackedNotificationsBehavior
in ourBehaviors
package to build on top of the platformInfoBar
control. - MarkdownTextBlock - This control had a custom Markdown Parser, we didn't want to port the existing codebase because of this. However, the community is working on a replacement in a WCT Labs PR here based on the excellent Markdig library.
- Menu - This is part of WinUI now, see
MenuBar
. - Notifications - The notification helpers in the Toolkit have migrated to the Windows App SDK, see their documentation here to get started. Direct issues to the WindowsAppSDK.
- RadialGradientBrush - This is part of WinUI now.
- RadialProgressBar - This is part of WinUI now, see ProgressRing documentation and set IsIndeterminate to false.
- XAML Islands Helpers - The tooling in this repository is no longer maintained. XAML Islands is part of the Windows App SDK and shipped in v1.4. Direct issues to the WindowsAppSDK.
Migration Notes 🚚
Be sure to read the rest of the breaking change notes above! 😉
Most UI controls have their own package now under CommunityToolkit.<Uwp|WinUI>.Controls.*
; we're working to have a meta package again, but do not have one at this time.
For individual grouped control packages of 7.x, you can find the following changes:
- From Controls.Core:
DropShadowPanel
has been replaced with Attached Shadows in theExtensions
andMedia
packages.InAppNotification
is now theStackedNotificationsBehavior
for WinUI'sInfoBar
in theBehaviors
package.Menu
is part of WinUI now, seeMenuBar
.RadialProgressBar
is part of WinUI'sProgressRing
now, IsIndeterminate="False".
- From Controls.Layout:
Expander
is part of WinUI now.GridSplitter
is part of theSizers
package, it's also been entirely re-written, but with defaults should look/behave the same, if not better!- "Headered" controls are part of the
HeaderedControls
package,HeaderedItemsControl
now usesItemsPresenter
'sHeader
andFooter
new,Orientation
has been removed, customize theItemsPanel
instead.
- For parts of the
Uwp/WinUI
andUwp/WinUI.UI
packages, look for ourCollections
,Converters
,Extensions
,Helpers
, andTriggers
packages.
Other controls either have their own package or have not been migrated yet. Search and then open a discussion if you need assistance.
Packages/Feature Overview 📦
Search for either CommunityToolkit.Uwp
or CommunityToolkit.WinUI
(Windows App SDK), depending on your target platform, and one of the packages listed below should appear. Today's release is version 8.0.230907
.
- Animations - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Behaviors ✨ - WinUI 2/UWP - WinUI 3/WindowsAppSDK ✨
- Collections - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Controls - All the following packages are under the
CommunityToolkit.WinUI.Controls
namespace (see above):- CameraPreview 💻 - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- HeaderedControls ✨ - WinUI 2/UWP - WinUI 3/WindowsAppSDK ✨
- ImageCropper 💻 - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- LayoutTransformControl - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- MetadataControl - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Primitives - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- RadialGauge 💻🎨✨ - WinUI 2/UWP - WinUI 3/WindowsAppSDK ✨
- RangeSelector 🎨 - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- RichSuggestBox 💻🎨 - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Segmented ✨ - WinUI 2/UWP - WinUI 3/WindowsAppSDK ✨
- SettingsControls ✨ - WinUI 2/UWP - WinUI 3/WindowsAppSDK ✨
- Sizers 🎨✨ - WinUI 2/UWP - WinUI 3/WindowsAppSDK ✨
- TokenizingTextBox 🎨 - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Converters - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- DeveloperTools - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Extensions - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Helpers - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Lottie 💻 - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Media 💻 - WinUI 2/UWP - WinUI 3/WindowsAppSDK
- Triggers - WinUI 2/UWP - WinUI 3/WindowsAppSDK
'✨' denotes new or updated packages/features from version 7.1.
'🎨' denotes updated XAML styling from version 7.1.
'💻' denotes packages which only target UWP/WindowsAppSDK. However, its absence does not imply that every feature will work across all platforms (see note in introduction).
🔥🐉 Note: Mixing and matching 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's something that we haven't yet ported but you need, open a discussion to let us know or claim it and contribute!
What's Changed since pre-releases
- Update tooling submodule for rebrand changes by @michael-hawker in #189
- [Docs] Minor tweaks by @niels9001 in #198
- Porting the Connected Animations sample by @niels9001 in #180
- Snap to Uno-check 1.13 manifest to resolve build issue by @michael-hawker in #202
- Update tooling for app changes by @michael-hawker in #200
- Include component icons as library assets by @Arlodotexe in #203
- Sample App Package/Source Links by @michael-hawker in #204
- Add source syntax highlighting to sample app by @Arlodotexe in #205
- Niels9001/recategorization by @niels9001 in #211
- Minor sample tweaks by @niels9001 in #209
- Removed all markdown links starting with /dotnet/api/ by @Arlodotexe in #213
- Sample App Final Build by @michael-hawker in #214
- Do a pass on spelling and markdown linting in markdown only by @michael-hawker in #216
- [SettingsExpander] Fix for CornerRadius by @niels9001 in #218
- Update Build so that Uwp package doesn't include WASDK and vice-versa by @michael-hawker in #221
- Update ReadMe.md for release by @michael-hawker in #225
- Updating Collections namespace by @niels9001 in #226
- Add Readmes to each component by @michael-hawker in #224
Full Changelog: v8.0.230828-rc...v8.0.230907