Releases: CommunityToolkit/Windows
v8.1.240821
See more information on our release blog here
What's Changed
Important Changes
Dependencies/TFM
The Toolkit’s dependencies have been updated to the latest WindowsAppSDK 1.5 and Uno Platform 5.2 versions to take in fixes and updates we needed to support .NET 8 and address other issues within the Toolkit.
When consuming the Toolkit, you must target Windows version 22621
instead of the prior 18362
, i.e. if you were targeting net6.0-windows10.0.18362
, you would target net6.0-windows10.0.22621
instead now.
Be sure to update the TargetFramework
in your csproj AND your publishing profile xml (if you have it there too).
This does not affect your ability to run down-level with the minimum target version, that remains at 17763
.
Older Package NuGet Redirects
Many older 7.x and below NuGet packages of the Windows Community Toolkit have been updated to redirect to their closest matching 8.1 counterparts.
For instance:
Microsoft.Toolkit.Uwp.UI.Controls.Primitives
now redirects toCommunityToolkit.Uwp.Controls.Primitives
CommunityToolkit.WinUI.UI.Controls.Primitives
now redirects toCommunityToolkit.WinUI.Controls.Primitives
- and so on for other packages.
The redirects help raise awareness about the new package names for developers who want to use the latest from the Windows Community Toolkit. You should see these notifications within Visual Studio on older projects. If you're updating from 7.x packages, see our migration guide here.
Highlights
- Adding ColorPicker by @niels9001 in #241
- Porting TabbedCommandBar by @niels9001 in #243
- Add overlay to ImageCropper by @shatyuka in #364
- fix:On the Windows app SDK using CameraHelper, FrameArrived time execution for a period of time will not be triggered. by @GreenShadeZhang in #376
- [SettingsExpander] Support FontFamily by @niels9001 in #333
- Enhance: Add spacing properties for
DockPanel
by @Poker-sang in #346 - Update Microsoft.WindowsAppSdk to latest stable 1.5 by @Arlodotexe in #354
- Update to Uno 5.x by @Arlodotexe in #311
- Add net8.0-windows to WinAppSdk by @Arlodotexe in #328
Samples
- [SwitchPresenter] Sample as a loader replacement by @niels9001 in #285
- Adding new Segmented sample by @niels9001 in #236
Bug Fixes
- [SettingsExpander] Fix CornerRadius bug by @niels9001 in #329
- Fix: AdvancedCollection inserts at wrong position when adding to end of source collection by @Poker-sang in #309
- Segmented - Update EqualPanel to avoid Layout Cycle by @qhy040404 in #360
- [GridSplitter] Fix #339: resize both items when they are fixed size to avoid the change overflowing to the irrelevant Star-sized item by @abdes in #342
- Refactor: Adaptive Column Width for StaggeredLayout by @Poker-sang in #371
- fix: Uno Platform - Avoid square border around
RangeSelector
Thumbs
by @MartinZikmund in #400 - Update DockPanel.md by @mael8 in #419
- Fix DockPanel measuring bug by @Poker-sang in #416
- Fix
IsNullOrEmptyStateTrigger
for Uno to consider FEs as non-empty by @Youssef1313 in #452 - fix:
ProtectedCursor
is now supported in Uno Platform by @MartinZikmund in #433
Infrastructure
- Upgrade to latest stable WinAppSdk 1.4 by @Arlodotexe in #300
- Update uno-check to 1.18.1 by @Arlodotexe in #320
- Cleanup project references by @Arlodotexe in #318
- Update WinAppSdk to latest 1.4.4 (1.4.231219000) by @Arlodotexe in #314
- Disable Implicit animations when running under Uno by @Arlodotexe in #326
- Fix CI failure after update to PowerShell 7.4.0 by @Arlodotexe in #330
- Fixed PackageId being overridden by MSBuild.Sdk.Extras import by @Arlodotexe in #352
- Upgrade to C# Dev Kit by @Arlodotexe in #353
- Update Uno to 5.1.75 by @Arlodotexe in #355
- Update Microsoft.WindowsAppSDK to 1.5.240311000 by @Arlodotexe in #369
- Added missing package descriptions by @Arlodotexe in #362
- Updated Uno to 5.1.87 by @Arlodotexe in #370
- Updated tooling to latest main by @Arlodotexe in #382
- Updated actions to latest version for node 20 by @Arlodotexe in #387
- Updated tooling to latest main by @Arlodotexe in #399
- Documentation fixup for v8.1 by @Arlodotexe in #398
- Fixed duplicate artifact names across matrices in CI by @Arlodotexe in #411
- Fixed remaining Microsoft Learn doc warnings by @Arlodotexe in #410
- Fixed duplicated artifacts in CI when uploading package list by @Arlodotexe in #421
- Enable AoT for net8 in Release by @Arlodotexe in #417
- Update Uno version, Uno TFMs to .NET 8 by @Arlodotexe in #422
- Update dotnet-tools.json - slngen to 11.2.6 by @michael-hawker in #442
- MultiTarget Matrix for CI, support for solution generation by @Arlodotexe in #456
- Update build requirements in readme by @Arlodotexe in #476
New Contributors
- @qhy040404 made their first contribution in #360
- @shatyuka made their first contribution in #364
- @abdes made their first contribution in #342
- @GreenShadeZhang made their first contribution in #376
- @MartinZikmund made their first contribution in #400
- @mael8 made their first contribution in #419
- @Youssef1313 made their first contribution in #452
Known Issues
- Regression with WAP packaging projects, see: #490
Full Changelog: v8.0.240109...v8.1.240821
v8.1.240606-rc
What's Changed
Important Notes
- There should also be a better error message now if the wrong TFM is used by a consuming project:
- We may have noticed issues with the transitive dependencies for the
Media
packages (or possibly related toAnimations
package), if you notice issues where you need to install additional packages manually, please comment on this issue.
Highlights
- Enable AoT for net8 in Release by @Arlodotexe in #417
- Update Uno version, Uno TFMs to .NET 8 by @Arlodotexe in #422
- fix: Uno Platform - Avoid square border around
RangeSelector
Thumbs
by @MartinZikmund in #400 - Fix DockPanel measuring bug by @Poker-sang in #416
Documentation
- Update DockPanel.md by @mael8 in #419
- Documentation fixup for v8.1 by @Arlodotexe in #398
- Fixed remaining Microsoft Learn doc warnings by @Arlodotexe in #410
Infrastructure
- Updated actions to latest version for node 20 by @Arlodotexe in #387
- Fixed duplicate artifact names across matrices in CI by @Arlodotexe in #411
- Fixed duplicated artifacts in CI when uploading package list by @Arlodotexe in #421
New Contributors
- @MartinZikmund made their first contribution in #400
- @mael8 made their first contribution in #419
Full Changelog: v8.1.240328-rc...v8.1.240606-rc
For changelog of the last 8.1-rc compared to the last stable release: https://github.com/CommunityToolkit/Windows/releases/tag/v8.1.240328-rc
v8.1.240328-rc
What's Changed
Welcome to the 8.1-rc release of the Windows Community Toolkit! We have a lot of new and exciting updates in this release, most notably updates for our dependent framework compatibility and a couple of long-standing controls we weren't able to migrate in the original 8.0 release, ColorPicker
and TabbedCommandBar
, originally contributed by @robloo and @yoshiask.
If you're migrating from 7.x to 8.0, check out our main 8.0 release notes here.
You can find the 8.1.240328-rc
packages on NuGet.org.
Migration Notes 📖
We had to update the WinAppSdk TFM to 22621
to resolve incompatabilies with Win2D in the Media component when we upgraded from Windows App SDK 1.3 to 1.4. The full list of notes about this change can be found here, but to summarize:
- This won't cause issues for targeting older versions of Windows, but it will require those who depend on our packages to upgrade their TFM to
net*-windows10.0.22621.0
(where star*
is6.0
,7.0
[support ending soon], or8.0
).
Dependencies/Frameworks
We've updated our packages to support the latest .NET 8.0 (windows10.0.22621.0), Windows App SDK 1.5.240311000, and Uno 5.1.87.
- Update Microsoft.WindowsAppSDK to 1.5.240311000 by @Arlodotexe in #369
- Add net8.0-windows to WinAppSdk by @Arlodotexe in #328
- Updated Uno to 5.1.87 by @Arlodotexe in #370
New Components / Features
We've brought over the popular ColorPicker
and TabbedCommandBar
experiences from our old codebase, enjoy! The Camera helpers have also been fixed for use on Windows App SDK, thanks @GreenShadeZhang for helping us drive understanding on changes in the platform in this space! 🎉
ImageCropper
has a new feature thanks to @shatyuka! @Poker-sang added a new Spacing
property to DockPanel
, and GridSplitter
's behavior for fixed columns was updated by @abdes! 🎉
- Adding ColorPicker by @niels9001 in #241
- Porting TabbedCommandBar by @niels9001 in #243
- fix:On the Windows app SDK using CameraHelper, FrameArrived time execution for a period of time will not be triggered. by @GreenShadeZhang in #376
- Add overlay to ImageCropper by @shatyuka in #364
- [GridSplitter] Fix #339: resize both items when they are fixed size to avoid the change overflowing to the irrelevant Star-sized item by @abdes in #342
- [SettingsExpander] Support FontFamily by @niels9001 in #333
- Enhance: Add spacing properties for
DockPanel
by @Poker-sang in #346 - [SwitchPresenter] Sample as a loader replacement by @niels9001 in #285
- Adding new Segmented sample by @niels9001 in #236
Infrastructure
Ongoing updates/intermediary commits/improvements to the Toolkit's underlying tooling.
- Update Microsoft.WindowsAppSdk to latest stable 1.5 by @Arlodotexe in #354
- Fixed PackageId being overridden by MSBuild.Sdk.Extras import by @Arlodotexe in #352
- Fix CI failure after update to PowerShell 7.4.0 by @Arlodotexe in #330
- Upgrade to C# Dev Kit by @Arlodotexe in #353
- Upgrade to latest stable WinAppSdk 1.4 by @Arlodotexe in #300
- Update WinAppSdk to latest 1.4.4 (1.4.231219000) by @Arlodotexe in #314
- Cleanup project references by @Arlodotexe in #318
- Update uno-check to 1.18.1 by @Arlodotexe in #320
- Update Uno to 5.1.75 by @Arlodotexe in #355
- Update to Uno 5.x by @Arlodotexe in #311
- Updated tooling to latest main by @Arlodotexe in #382
Bug Fixes
Other important fixes and updates to AdvancedCollectionView
from @Poker-sang and a Layout Cycle issue for the Segmented control by @qhy040404! 🎉
- Fix: AdvancedCollection inserts at wrong position when adding to end of source collection by @Poker-sang in #309
- Added missing package descriptions by @Arlodotexe in #362
- Disable Implicit animations (unsupported) when running under Uno by @Arlodotexe in #326
- [SettingsExpander] Fix CornerRadius bug by @niels9001 in #329
- Segmented - Update EqualPanel to avoid Layout Cycle by @qhy040404 in #360
- Refactor: Adaptive Column Width for StaggeredLayout by @Poker-sang in #371
New Contributors 🎉
Thanks to all our new contributors this release for helping us to improve the Windows Community Toolkit for everyone!
- @qhy040404 made their first contribution in #360
- @shatyuka made their first contribution in #364
- @abdes made their first contribution in #342
- @GreenShadeZhang made their first contribution in #376
Full Changelog: v8.0.240109...v8.1.240328-rc
If you find any issues with this pre-release, please comment in the discussion and open an issue to let us know.
v8.0.240109
What's Changed
- [SettingsControls] Bugfix for wrapping states by @niels9001 in #252
- Fixed compositor nullreference in WinUI 3 by @Arlodotexe in #299
- Fixing crash when setting empty string for SettingsCard's Header and Description by @Dub1shu in #312
- [SettingsCard] Accesibility improvements by @niels9001 in #284
- Fix ExpressionFunctions.ColorLerpRgb by @h82258652 in #304
New Contributors
- @Dub1shu made their first contribution in #312
- @h82258652 made their first contribution in #304
Misc Updates
- Added issue templates and links by @Arlodotexe in #223
- Relocated github templates by @Arlodotexe in #229
- [Various] Sample tweaks by @niels9001 in #231
- Fixed an issue where all documents were include regardless of MultiTarget support by @Arlodotexe in #237
- Bump tooling to latest main by @Arlodotexe in #286
Full Changelog: v8.0.230907...v8.0.240109
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 ...
v8.0.230828-rc
What's Changed
- Fix: WrapLayout by @Poker-sang in #187
- Updated tooling, testing net7 fix by @Arlodotexe in #194
- Updates build.yml trigger to automatically start workflow when a release branch is created by @michael-hawker in #188
New Contributors
- @Poker-sang made their first contribution in #187
Full Changelog: v8.0.230823-rc...v8.0.230828-rc
v8.0.230823-rc
What's Changed
- Initial setup of configuration files, build script, and documentation for the repo by @michael-hawker in #1
- Update ReadMe.md by @niels9001 in #10
- Port/extensions by @michael-hawker in #12
- XAML styler by @niels9001 in #14
- Porting Triggers by @niels9001 in #13
- More Extension Test/Sample Work by @michael-hawker in #15
- Updated tooling submodule by @Arlodotexe in #23
- Build.yml updates to fix package push by @michael-hawker in #24
- Initial 'Effects' component + AttachedShadowBase/AttachedDropShadow by @michael-hawker in #19
- Bring over Sizer controls to main repo by @michael-hawker in #26
- Porting Behaviors by @Arlodotexe in #20
- Porting Primitives by @niels9001 in #18
- Update Triggers version number to 8.0.0-beta.1 by @michael-hawker in #28
- Fix main by @michael-hawker in #29
- Fixed broken binding in WrapPanel sample by @Arlodotexe in #30
- Update header image and readme and link to discussion by @michael-hawker in #38
- Re-enable Testspaces Test Reporting by @michael-hawker in #40
- Porting Helpers by @niels9001 in #41
- Porting RangeSelector by @niels9001 in #44
- Porting animations by @niels9001 in #47
- Bumped package to 8.0.0-beta.1 by @Arlodotexe in #48
- Porting RadialGauge by @niels9001 in #45
- Porting Behaviors.Animations by @niels9001 in #49
- Porting HeaderedContentControl by @niels9001 in #61
- Fixed PackageId for control-based components by @Arlodotexe in #63
- Porting MetadataControl by @niels9001 in #60
- Porting HeaderedItemsControl by @niels9001 in #62
- Renamed BehaviorsAnimations to Behaviors.Animations by @Arlodotexe in #64
- Porting RichSuggestBox by @niels9001 in #65
- Porting CameraHelper and CameraPreview by @niels9001 in #71
- [Chore] Removing controls in .csproj by @niels9001 in #75
- Porting AdvancedCollectionView by @niels9001 in #72
- Porting DeveloperTools by @niels9001 in #79
- Porting IncrementaLoadingCollection by @niels9001 in #74
- Fixes #85 - ContentSizer manipulating component Width to Zero on load by @michael-hawker in #86
- Improved styling customization SizerBase by @niels9001 in #96
- Cleaned up duplicate headers and descriptions by @Arlodotexe in #99
- Adding component icons by @niels9001 in #103
- Fix package id for CameraPreview by @Arlodotexe in #104
- HeaderedControls by @niels9001 in #109
- Porting TokenizingTextBox by @niels9001 in #77
- Port LayoutTransformControl by @niels9001 in #83
- Bump version number HeaderedControls by @niels9001 in #122
- Add sample/tests for FrameworkElementExtensions.Ancestor/Type by @michael-hawker in #105
- Collections component by @niels9001 in #123
- Package clean-up for Extensions, Animations, and Behaviors by @michael-hawker in #121
- Ported source code for CommunityToolkit.WinUI.Media by @Arlodotexe in #113
- Fixed Wasm/Linux build errors in CI by @Arlodotexe in #145
- Add more samples for the ConstrainedBox control by @michael-hawker in #141
- ListViewBase Header Behaviors Port by @michael-hawker in #136
- [RadialGauge] Set ToolTip by @niels9001 in #140
- Removing properties / methods from markdown by @niels9001 in #147
- Update tooling by @niels9001 in #139
- Fixed codespaces not cloning submodule automatically by @Arlodotexe in #146
- Porting SettingsControls by @niels9001 in #154
- Port ImageCropper by @niels9001 in #97
- Fix building in Codespaces, install net7 in devcontainer by @Arlodotexe in #155
- Bumped SettingsControl version number, enable other TFMs by @Arlodotexe in #159
- Updated tooling to latest version by @Arlodotexe in #160
- Update / Unify all package versions by @michael-hawker in #162
- Add Converters property to directory props to build converters from source for sample app by @michael-hawker in #152
- [Converters] Adding updated samples by @niels9001 in #138
- Porting Segmented by @niels9001 in #157
- Updating tooling module for Converters fix 2 by @michael-hawker in #164
- Remove double-slashes from Project Paths by @michael-hawker in #165
- StackedNotificationsBehavior port by @michael-hawker in #170
- Fixes issues with the build script in detecting dump files to upload and analyze by @michael-hawker in #174
- Fix DoubleToObjectConverter with GreaterThan and LessThan set by @davidegiacometti in #176
- [SettingsControls] Updating default tooltip value by @niels9001 in #177
- Upgrade to .NET 7, enable WASM optimizations by @Arlodotexe in #173
- Port and add samples for Media EffectAnimations by @Arlodotexe in #151
- Porting NavigateToUriBehavior by @niels9001 in #179
- Add Package Signing and Release Staging/Pipeline for NuGet.org by @michael-hawker in #178
- AdvancedCollectionView: Use generic arguments if possible to get type of elements in list by @Arlodotexe in #182
- Updated header image by @niels9001 in #183
- Icon updates and md cleanup by @niels9001 in #158
New Contributors
- @michael-hawker made their first contribution in #1
- @niels9001 made their first contribution in #10
- @Arlodotexe made their first contribution in #23
- @davidegiacometti made their first contribution in #176
- @lhak made their first contribution in #182
Full Changelog: https://github.com/CommunityToolkit/Windows/commits/v8.0.230823-rc