Uno.WindowsCommunityToolkit icon indicating copy to clipboard operation
Uno.WindowsCommunityToolkit copied to clipboard

The Windows Community Toolkit is a collection of helper functions, custom controls, and app services. It simplifies and demonstrates common developer tasks building UWP apps for Windows 10. The toolki...

Uno Platform port of Windows Community Toolkit

This port allows for Uno Platform based apps to use Windows Community Toolkit for WinUI 3 on Windows, iOS, macOS, Android, WebAssembly and Linux.

See below on this page for information about UWP.

The following packages are available:

  • Uno.CommunityToolkit.Common NuGet
  • Uno.CommunityToolkit.WinUI NuGet
  • Uno.CommunityToolkit.WinUI.Connectivity NuGet
  • Uno.CommunityToolkit.WinUI.DeveloperTools NuGet
  • Uno.CommunityToolkit.WinUI.UI NuGet
  • Uno.CommunityToolkit.WinUI.UI.Animations NuGet
  • Uno.CommunityToolkit.WinUI.UI.Behaviors NuGet
  • Uno.CommunityToolkit.WinUI.UI.Controls NuGet
  • Uno.CommunityToolkit.WinUI.UI.Controls.Core NuGet
  • Uno.CommunityToolkit.WinUI.UI.Controls.DataGrid NuGet
  • Uno.CommunityToolkit.WinUI.UI.Controls.Input NuGet
  • Uno.CommunityToolkit.WinUI.UI.Controls.Layout NuGet
  • Uno.CommunityToolkit.WinUI.UI.Controls.Markdown NuGet
  • Uno.CommunityToolkit.WinUI.UI.Controls.Media NuGet
  • Uno.CommunityToolkit.WinUI.UI.Controls.Primitives NuGet
  • Uno.CommunityToolkit.WinUI.UI.Media NuGet

Using the Uno Platform Windows Community Toolkit packages

These packages are providing support for the Uno Platform supported targets (iOS, Android, macOS, WebAssembly and Skia GTK/WPF/Tizen).

On Windows projects (the WinUI 3 Desktop head), please install the official Windows Community Toolkit packages for WinUI 3.

If you are building a library, use the following to conditionally include the toolkit builds:

<ItemGroup Condition="$(TargetFramework.Contains('windows10'))">
	<PackageReference Include="CommunityToolkit.WinUI.Controls" Version="7.1.2" />
</ItemGroup>
<ItemGroup Condition="!$(TargetFramework.Contains('windows10'))">
	<PackageReference Include="Uno.CommunityToolkit.WinUI.Controls" Version="7.1.200" />
</ItemGroup>

For example, using the default Uno template, you only need to add the following lines (as needed) to the class library <AppName>.csproj. No changes are needed in each target separately (<AppName>.Wasm.csproj, <AppName>.Windows.csproj, etc.)

<ItemGroup Condition="$(TargetFramework.Contains('windows10'))">
  <PackageReference Include="CommunityToolkit.Common" />
  <PackageReference Include="CommunityToolkit.WinUI" />
  <PackageReference Include="CommunityToolkit.WinUI.Connectivity" />
  <PackageReference Include="CommunityToolkit.WinUI.DeveloperTools" />
  <PackageReference Include="CommunityToolkit.WinUI.UI" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Animations" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Behaviors" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Controls" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Controls.Core" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Controls.DataGrid" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Controls.Input" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Controls.Layout" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Controls.Markdown" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Controls.Media" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Controls.Primitives" />
  <PackageReference Include="CommunityToolkit.WinUI.UI.Media" />
</ItemGroup>
<ItemGroup Condition="!$(TargetFramework.Contains('windows10'))">
  <PackageReference Include="Uno.CommunityToolkit.Common" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.Connectivity" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.DeveloperTools" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Animations" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Behaviors" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Controls" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Controls.Core" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Controls.DataGrid" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Controls.Input" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Controls.Layout" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Controls.Markdown" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Controls.Media" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Controls.Primitives" />
  <PackageReference Include="Uno.CommunityToolkit.WinUI.UI.Media" />
</ItemGroup>

Also, don't forget to add the corresponding package versions in Directory.Packages.props:

<PackageVersion Include="Uno.CommunityToolkit.Common" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.Connectivity" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.DeveloperTools" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Animations" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Behaviors" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Controls" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Controls.Core" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Controls.DataGrid" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Controls.Input" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Controls.Layout" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Controls.Markdown" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Controls.Media" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Controls.Primitives" Version="7.1.200" />
<PackageVersion Include="Uno.CommunityToolkit.WinUI.UI.Media" Version="7.1.200" />

<PackageVersion Include="CommunityToolkit.Common" Version="8.2.2" />
<PackageVersion Include="CommunityToolkit.WinUI" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.Connectivity" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.DeveloperTools" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Animations" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Behaviors" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls.Core" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls.DataGrid" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls.Input" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls.Layout" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls.Markdown" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls.Media" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls.Primitives" Version="7.1.2" />
<PackageVersion Include="CommunityToolkit.WinUI.UI.Media" Version="7.1.2" />

Support for UWP

As the original Community Toolkit does, this fork also provides binaries for UWP, and the branch unorel/7.1 is used to provide this support.

The following packages are available from this branch:

  • Uno.Microsoft.Toolkit NuGet
  • Uno.Microsoft.Toolkit.Uwp NuGet
  • Uno.Microsoft.Toolkit.Uwp.Connectivity NuGet
  • Uno.Microsoft.Toolkit.Uwp.DeveloperTools NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Animations NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Behaviors NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Controls NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Controls.Core NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Controls.DataGrid NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Controls.Input NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Controls.Layout NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Controls.Markdown NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Controls.Media NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Controls.Primitives NuGet
  • Uno.Microsoft.Toolkit.Uwp.UI.Media NuGet

Using the Uno Platform Windows Community Toolkit packages for UWP

These packages are providing support for the Uno Platform supported targets (iOS, Android, macOS, WebAssembly and Skia GTK/WPF/Tizen).

On Windows projects (the UWP head), please install the official Windows Community Toolkit packages.

If you are building a library, use the following to conditionally include the toolkit builds:

<ItemGroup Condition="'$(TargetFramework)' == 'uap10.0.17763'">
	<PackageReference Include="Microsoft.Toolkit.Uwp.Controls" Version="7.1.10" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' != 'uap10.0.17763'">
	<PackageReference Include="Uno.Microsoft.Toolkit.Uwp.Controls" Version="7.1.10" />
</ItemGroup>