The Windows Community Toolkit is a collection of helpers, extensions, and custom controls. It simplifies and demonstrates common developer tasks building .NET apps with UWP and the Windows App SDK / WinUI 3 for Windows 10 and Windows 11. The toolkit is part of the .NET Foundation.
Перейти к файлу
Sergio Pedri 059cf83f1f
Microsoft.Toolkit.HighPerformance package (part 2) (#3273)
* Added support for .NET Core 2.1 and 3.1 targets

* Fixed T[] dangerous accessors on .NET Standard

* Minor speed improvements to Array2DColumnEnumerable<T>

* Updated 2D array extensions

* Minor code tweaks

* Added DangerousGetLookupReferenceAt<T> extension

* Added BitHelper.HasLookupFlag APIs

* Added BitHelper.ExtractRange and SetRange APIs

* Added bool bitwise mask extensions

* Added StreamExtensions class on .NET Standard 2.0

* Added IBufferWriterExtensions type

* Added more Stream extensions

* Added object field offset extensions

* Minor code refactoring

* Improved description

* Switched managed count to IntPtr

* Refactored GetDjb2HashCode code, minor tweaks

* Unit tests fixes

* Refactored Count extensions, minor tweaks

* Fixed incorrect operators precedence

* Added SpanHelper.GetDjb2LikeByteHash method

* Minor code refactoring

* Code refactoring to HashCode<T>

* Minor style tweaks

* Updated comments styles to follow style convention

* Minor code tweaks to the Count method

* More code tweaks to the Count method

* Added tests for DangerousGetObjectDataByteOffset

* Fixed visibility of new object extensions

* Added tests for 64-bit extract/set range APIs

* Added tests for bool to bitwise mask APIs

* Fixed MemoryStream EOF exception type

* Enabled Stream extension tests on UWP

* Added StreamExtensions read/write value tests

* Minor code refactoring to IBufferWriter<T> extensions

* Added IBufferWriterExtensions tests

* Added MemoryBufferWriter<T> type

* Added IBuffer<T> interface

* Added MemoryBufferWriterDebugView<T> type

* Added MemoryBufferWriter<T> tests

* Fixed a unit test

* Fixed incorrect inlining attribute

* Removed leftover partial modifier

* Added missing readonly modifier for lock structs

* Improved summary for the Box<T> type

* Added comments for #pragma warning disable items

* Added info on (x << 5) + x over x * 33 optimization

* Improved XML docs for BitHelper APIs

* Fixed potentially misleading test method names

* Added comment for MemoryOwner<T>.Dispose test

* Fixed multi-target support for string extensions

* Improved IMemoryOwner.AsStream tests

* Added XML remarks to the HashCode<T> type

* Improved docs for ReadOnlySpanExtensions.GetDjb2HashCode<T>

* Tweaked an XML link

* Tweaked attributes for SpanHelper methods

* Minor optimizations to SpanHelper.Count

* Fixed an overflow bug in SpanHelper.Count

* Speed improvements to SpanHelper.Count

~35% speedup with large collections of byte-size values, ~10% with other types

* Updated .csproj description

* Added float/double support to SpanHelper.Count

* Added exception to the Box<T> constructor

* Removed unnecessary [SuppressMessage] attributes

* Removed [SuppressMessage] attributes

* Changed NullableRef<T>-s exceptions to follow Nullable<T>

* Added more operators to NullableRef<T> types

* Added missing in modifiers in ParallelHelper.For overloads

* Removed SIMD support for float/double count

It lacked proper handling of NaN values and both (signed) zeros

* Fixed compiler directives in SpanEnumerable<T>

* Updated ReadOnlySpanEnumerable<T> type

* Updated NuGet package tags

* Added HighPerformance package to readme.md list

* Added .NET Standard 1.4 target

* Added tests for implicit NullableRef<T> operators

* Removed unnecessary using directive

* Added missing sealed modifiers to MemoryStream methods

* Added Span<T>.IndexOf(ref T) extension

* Added ReadOnlySpan<T>.IndexOf<T>(in T) extension

* Added missing changes (incorrect commit)

* Removed unnecessary workaround (method is inlined)

* Added improved remarks for bool.ToBitwiseMask32/64

* Added internal NotNullWhen attribute when < .NET Standard 2.1

* Enabled .csproj-wide nullability annotations

* Minor code style tweaks

* Added [ReadOnly]NullableRef<T>.Null static properties
2020-05-13 12:32:20 -07:00
.github small modifications 2020-04-09 23:33:40 +01:00
GazeInputTest Microsoft.Toolkit.HighPerformance package (part 2) (#3273) 2020-05-13 12:32:20 -07:00
Microsoft.Toolkit fix alignment 2020-04-30 11:59:35 +02:00
Microsoft.Toolkit.HighPerformance Microsoft.Toolkit.HighPerformance package (part 2) (#3273) 2020-05-13 12:32:20 -07:00
Microsoft.Toolkit.Parsers Fix issue in Markdown Parser with Two-Line Header 2 parsing 2020-03-31 14:48:22 -07:00
Microsoft.Toolkit.Services Updated StyleCop to 1.1.118. 2020-03-24 16:54:08 -07:00
Microsoft.Toolkit.Uwp New Microsoft.Toolkit.HighPerformance package (#3128) 2020-05-05 16:44:11 -07:00
Microsoft.Toolkit.Uwp.Connectivity restore task return value + add discards 2020-03-20 16:14:46 +01:00
Microsoft.Toolkit.Uwp.DeveloperTools Improved the description of the DeveloperTools project 2019-03-11 15:42:45 -03:00
Microsoft.Toolkit.Uwp.Input.GazeInteraction Added support for ARM64. 2019-10-26 16:44:03 -07:00
Microsoft.Toolkit.Uwp.Notifications .NET Core 3.0 support for desktop toasts (#3256) 2020-05-12 09:22:21 -07:00
Microsoft.Toolkit.Uwp.Notifications.JavaScript Improved description for Notifications and Notifications.JavaScript projects. 2019-03-08 16:12:18 -03:00
Microsoft.Toolkit.Uwp.PlatformDifferencesGen Centralized StyleCop version in Directory.Build.props. 2020-03-26 11:55:58 -07:00
Microsoft.Toolkit.Uwp.PlatformSpecificAnalyzer remove unused fields 2020-02-28 15:15:14 +01:00
Microsoft.Toolkit.Uwp.SampleApp Example code was using the wrong class 2020-05-05 23:25:56 -07:00
Microsoft.Toolkit.Uwp.Samples.BackgroundTasks Centralized StyleCop version in Directory.Build.props. 2020-03-26 11:55:58 -07:00
Microsoft.Toolkit.Uwp.Services Clean-up messages and some unneeded dependencies 2019-11-11 16:01:19 -08:00
Microsoft.Toolkit.Uwp.UI Upgrade Microsoft.Xaml.Behaviors.Uwp.Managed package 2020-04-13 15:13:56 -07:00
Microsoft.Toolkit.Uwp.UI.Animations Upgrade Microsoft.Xaml.Behaviors.Uwp.Managed package 2020-04-13 15:13:56 -07:00
Microsoft.Toolkit.Uwp.UI.Controls Merge branch 'master' into dev/jackil/mtbFix 2020-03-31 14:39:20 -07:00
Microsoft.Toolkit.Uwp.UI.Controls.DataGrid Merge branch 'master' into styleCopUpdate 2020-03-24 18:01:09 -07:00
Microsoft.Toolkit.Uwp.UI.Controls.DataGrid.Design Add AssetTargetFallback for design projects to quiet nuget 2019-09-07 16:26:42 -04:00
Microsoft.Toolkit.Uwp.UI.Controls.Design Add AssetTargetFallback for design projects to quiet nuget 2019-09-07 16:26:42 -04:00
Microsoft.Toolkit.Uwp.UI.Media Swap out Sdk references to UwpMetaPackage based on PR feedback 2019-10-29 15:27:31 -07:00
Microsoft.Toolkit.Win32 moving win32 projects to a new repo 2018-11-13 14:21:41 -08:00
UnitTests Microsoft.Toolkit.HighPerformance package (part 2) (#3273) 2020-05-13 12:32:20 -07:00
build Fixed build issue by adding version retrieval for package target. 2020-04-07 16:23:28 -07:00
githubresources Added UI for UWP 2017-02-19 08:27:21 +10:00
.editorconfig Microsoft.Toolkit.HighPerformance package (part 2) (#3273) 2020-05-13 12:32:20 -07:00
.gitattributes Repo cleanup 2016-07-28 19:54:47 -04:00
.gitignore Guard APIs (#3131) 2020-03-14 18:13:04 -07:00
.runsettings Enabled .NetCore tests. 2020-04-02 01:12:03 -07:00
CODE_OF_CONDUCT.md Code of conduct 2020-04-09 23:31:19 +01:00
Directory.Build.props Merge branch 'master' into testsCI 2020-03-26 13:56:39 -07:00
Directory.Build.targets Fixed compilation. 2019-02-07 14:32:56 -08:00
ThirdPartyNotices.txt .NET Core 3.0 support for desktop toasts (#3256) 2020-05-12 09:22:21 -07:00
UWP Community Toolkit.sln.GhostDoc.user.dic Add word to solution dictionary 2018-04-16 12:14:21 -07:00
UWP Community Toolkit.sln.GhostDoc.xml renamed UWP Community Toolkit to Windows Community Toolkit Part 2 2018-05-03 13:55:24 -07:00
Windows Community Toolkit.sln New Microsoft.Toolkit.HighPerformance package (#3128) 2020-05-05 16:44:11 -07:00
Windows Community Toolkit.sln.DotSettings renamed solution file 2018-05-01 19:40:40 -07:00
azure-pipelines.yml Splitted build, tests and packaging into individual yaml steps. 2020-04-07 15:21:07 -07:00
contributing.md Fix broken link 2020-04-06 08:07:14 +03:00
global.json Removed .net core version pinning, and updated the build pipeline to a .Net Core 3.1. 2020-03-13 13:15:40 -07:00
license.md correct typo in license.md 2018-08-01 15:54:46 +08:00
nuget.config Sample App Update 6.0 2019-11-08 17:24:36 -08:00
readme.md Microsoft.Toolkit.HighPerformance package (part 2) (#3273) 2020-05-13 12:32:20 -07:00
settings.xamlstyler Update xamlstyler.settings 2016-11-16 12:09:21 +00:00
stylecop.json added stylecop.json to prevent usings from moving inside namespace 2018-02-13 21:36:25 -08:00
toolkit.public.snk Add Xaml Islands Xaml Wrappers Preview (#2432) 2018-09-06 13:36:28 -04:00
toolkit.snk add strong naming 2018-06-04 17:40:30 -04:00
version.json Update master to 6.1 version numbers for any preview updates 2020-01-31 14:15:53 -08:00

readme.md

topic languages products
sample
csharp
windows

Windows Community Toolkit

The Windows Community Toolkit is a collection of helper functions, custom controls, and app services. It simplifies and demonstrates common developer patterns when building experiences for Windows 10.

Build Status

Target Branch Status Recommended package version
Production rel/6.0.0 Build Status NuGet
Pre-release beta testing master Build Status MyGet

Getting Started

Please read the getting Started with the Windows Community Toolkit page for more detailed information about using the toolkit.

Documentation

All documentation for the toolkit is hosted on Microsoft Docs. All API documentation can be found at the .NET API Browser.

Windows Community Toolkit Sample App

Want to see the toolkit in action before jumping into the code? Download and play with the Windows Community Toolkit Sample App from the Store.

NuGet Packages

NuGet is a standard package manager for .NET applications which is built into Visual Studio. To open the UI, from your open solution, choose the Tools menu > NuGet Package Manager > Manage NuGet packages for solution... . Enter one of the package names below to search for it online.

Once you do a search, you should see a list similar to the one below (versions may be different, but names should be the same).

nuget packages

NuGet Package Name Description
Microsoft.Toolkit .NET Standard NuGet package containing common code
Microsoft.Toolkit.HighPerformance .NET Standard and .NET Core NuGet package with performance oriented helpers, extensions, etc.
Microsoft.Toolkit.Parsers .NET Standard NuGet package containing cross-platform parsers, such as Markdown and RSS
Microsoft.Toolkit.Services .NET Standard NuGet package containing cross-platform services
Microsoft.Toolkit.Uwp Main NuGet package includes code only helpers such as Colors conversion tool, Storage file handling, a Stream helper class, etc.
Microsoft.Toolkit.Uwp.Notifications Notifications Package - Generate tile, toast, and badge notifications for Windows 10 via code. Includes intellisense support to avoid having to use the XML syntax.
Microsoft.Toolkit.Uwp.Notifications.Javascript Notification Packages for JavaScript
Microsoft.Toolkit.Uwp.Services Services Package - This NuGet package includes the service helpers for Facebook, LinkedIn, Microsoft Graph, Twitter and more
Microsoft.Toolkit.Uwp.UI UI Packages - Brushes, XAML converters, Visual tree extensions, and other extensions and helpers for your XAML UI.
Microsoft.Toolkit.Uwp.UI.Animations Animations and Composition behaviors such as Blur, Fade, Rotate, etc.
Microsoft.Toolkit.Uwp.UI.Controls XAML Controls such as RadialGauge, RangeSelector, etc.
Microsoft.Toolkit.Uwp.UI.Controls.DataGrid XAML DataGrid control
Microsoft.Toolkit.Uwp.UI.Lottie Library for rendering Adobe AfterEffects animations natively in Windows apps
Microsoft.Toolkit.Uwp.Connectivity API helpers such as BluetoothLEHelper and Networking
Microsoft.Toolkit.Uwp.DeveloperTools XAML user controls and services to help developer building their app

Features

The following features can be found in the Windows Community Toolkit. Most features should work with the Falls Creator Update SDK 16299 and above; however, refer to specific documentation on each feature for more information.

Animations

Brushes

Controls

Developer Tools

Extensions

Helpers

Services

Parsers

Notifications

Feedback and Requests

Please use GitHub Issues for bug reports and feature requests. For general questions and support, please use Stack Overflow where questions should be tagged with the tag windows-community-toolkit.

Required Dependencies

The following dependencies are required for building the Windows Community Toolkit repo and sample app:

Contributing

Do you want to contribute? Here are our contribution guidelines.

Principles

  • Principle #1: The toolkit will be kept simple.
  • Principle #2: As soon as a comparable feature is available in the Windows SDK for Windows 10, it will be marked as deprecated.
  • Principle #3: All features will be supported for two Windows SDK for Windows 10 release cycles or until another principle supersedes it.

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

Roadmap

Read what we plan for next iterations, and feel free to ask questions.

By adding this (NuGet repo | Gallery) to your NuGet sources in Visual Studio, you can also get pre-release packages of upcoming versions.

.NET Foundation

This project is supported by the .NET Foundation.