August 22nd, 2024

Announcing Windows Community Toolkit v8.1

Michael Hawker
Senior Software Engineer

Announcing Windows Community Toolkit v8.1

We’re happy to announce that version 8.1 is available today! It’s a minor update which contains a variety of new features and improvements, made possible again with the support and contributions of our developer community. 🎉

Windows Community Toolkit Toolbox logo surrounded by various controls like the RangeSelector, ColorPicker, Sizer, Segmented, RadialGauge, TokenView, and SettingsCard.

If you’re not familiar with the Windows Community Toolkit, see below here! Or download our Sample Gallery from the Microsoft Store to start exploring what it has available for WinUI developers.

At a Glance 🔍

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.

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 to CommunityToolkit.Uwp.Controls.Primitives
  • CommunityToolkit.WinUI.UI.Controls.Primitives now redirects to CommunityToolkit.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.

New Features ✨

Color Picker

ColorPicker and ColorPickerButton return with 8.1, and have been upgraded with a new look and feel and optimized UX.

Link to the PR from Niels Laute 👑 Originally contributed in 7.0 by Robert Looyengoed 👑

TabbedCommandBar

TabbedCommandBar Control

The TabbedCommandBar has been ported to 8.1 and has adopted a modern look and feel, so it fits right in with other WinUI controls.

Link to the PR from Niels Laute 👑 Originally contributed in 7.0 by Yoshi Askharoun 👑

Improvements

.NET 8 Support

The Windows Community Toolkit now supports .NET 8 with Windows App SDK 1.5.

Be sure to read the Important Changes section for details on TFM updates required.

In addition, if you’re updating your application project to .NET 8 for the first time, be sure to update your RuntimeIdentifier in your csproj.

Camera Helpers

Llama in its natural environment

The Camera helpers have been updated and fixed to now work with the WindowsAppSDK. Thanks to PR from @GreenShadeZhang 👑

ImageCropper Overlay

ImageCropper Overlay Example

You can now provide a brush to use as the overlay for the ImageCropper control. This can allow you to show the crop shape or other ornaments that will be added in your post-processing during the live preview.

Thanks to PR from @Shatyuka 👑

DockPanel Spacing

DockPanel Spacing Example

DockPanel now supports both HorizontalSpacing and VerticalSpacing between elements to provide it options inline with other modern panels, see PR here.

Along with a layout/measuring issue in this PR. Thanks to @Poker-sang 👑

Initial AOT Annotations

With this PR, we’ve started looking at annotations for Native AOT support and will continue to test support for the upcoming WindowsAppSDK 1.6 release, stay tuned for more information and updates.

Bug Fixes 🐞

For the entire list of bug fixes and changes in this update, see the full changelog on GitHub here.

Windows Community Toolkit Labs 🧪

To help the process of starting new ideas and contributing to the Toolkit, we created Windows Community Toolkit Labs 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’re ready and well-tested.

We’ve talked about Labs here before, 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.

The best way to get involved with the Toolkit is to get involved with Windows Community Toolkit Labs. Setup the preview feed and pull down a package:.

https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-Labs/nuget/v3/index.json

Then provide feedback on that experiment, that’s all it takes to get started contributing!

From there join in a discussion or start a new one – we look forward to meeting you!

We have updated the Sample Gallery in the Store to include the latest iterations of Labs components. Since our last release, we have two new experiments for you to try and provide feedback on:

MarkdownTextBlock

MarkdownTextBlock Control Example

A rebuild of the prior MarkdownTextBlock component, but now built on top of the Markdig parser.

It currently offers better parsing and compatibility thanks to the Markdig library, though currently lacks some of the customization options of the original control. We hope to adopt it for our Sample App itself to further test and stretch its capabilties.

Thanks to @nerocui with this PR to get this journey started! 👑

Ribbon

Ribbon Control Example

An initial version of the common Ribbon pattern. The current experience provides grouping commands into collapsible sections with invidual and group keyboard accelerators. It can be combined with a SelectorBar to provide a more robust WPF-style Ribbon like experience.

Thanks to PR from @vgromfeld 👑

Feedback & Contributing

Not sure how to get started contributing? Don’t worry! Did you know that just providing feedback on what we’re doing and trying our new components is contributing?!?

If you have a new idea for a control, API, or something, read more about Windows Community Toolkit Labs above.

Join in our discussion about this 8.1 release on GitHub here. We’re also active on Discord in the Windows App Community server #community-toolkit channel here.

You can also reach out on Social Media with the #WindowsCommunityToolkit hashtag. Find us at @XAMLLlama, @XAMLLlama@hachyderm.io, @Niels9001, and @Arlodottxt@fosstodon.org.

If you’re interested in contributing documentation or code, here are a few extra steps:

  • Take a look at our repository and clone it.
  • Use the OpenSolution.bat file for a component and try to build it following the steps in the readme.
  • Back on GitHub, find an unclaimed TODO item for a component.
  • Comment to chime in with what you’d like to do, and we can help you get started toward your first Pull Request (PR)!

About the Windows Community Toolkit

If you’re new here, the Windows Community Toolkit is a collection of controls for WinUI 2, WinUI 3, and Uno Platform developers that simplifies and demonstrates common developer tasks for building experiences on Windows 10 and Windows 11 with .NET.

Reminder that 8.x is a complete re-work of how the Windows Community Toolkit is built and published from top-to-bottom. Be sure to read the breaking changes and migration notes from our last release blog here and on our wiki here!. In our 8.x update, we overhauled how we worked on the toolkit to enable targeting multiple platforms from a single-codebase, and to make it much easier to develop, maintain, and contribute Toolkit components.

The Toolkit is part of the .NET Foundation. You can download our Sample Gallery from the Microsoft Store to discover and try Toolkit components before getting started on your project. You can find an introduction video here.

About Uno Platform

Uno Platform Logo

For those new to Uno Platform – it enables building single-source C# and WinUI 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 available on GitHub.

🙋‍♂️ Not sure how to get started with WinUI 3, in general? Check out our video from .NET Conf.

Author

Michael Hawker
Senior Software Engineer

Michael A. Hawker, a.k.a. XAML Llama, is a Senior Software Engineer for the Apps, Partners, and Store (APS) team at Microsoft. APS focuses on driving the ISV ecosystem through technical engagement with partners and industry as well as providing essential first party experiences. Michael is the maintainer of the Windows Community Toolkit and prior “App Ninja”. He is also the creator of XAML Studio, a Microsoft Garage project.

4 comments

  • RoccoZero

    Please fix RivePlayer
    It doesn’t work for me, it just crashes

  • Joseph Finney

    This is awesome! Keep up the good work! Windows Community Toolkit Labs is so cool and a great way to incubate controls to get them great before making any commitments to support.

  • Matthew Bonanno

    I’m so glad a ribbon control is being added to the toolkit. I hope it leads to more apps adopting WinUI.