059cf83f1f
* 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 |
||
---|---|---|
.github | ||
GazeInputTest | ||
Microsoft.Toolkit | ||
Microsoft.Toolkit.HighPerformance | ||
Microsoft.Toolkit.Parsers | ||
Microsoft.Toolkit.Services | ||
Microsoft.Toolkit.Uwp | ||
Microsoft.Toolkit.Uwp.Connectivity | ||
Microsoft.Toolkit.Uwp.DeveloperTools | ||
Microsoft.Toolkit.Uwp.Input.GazeInteraction | ||
Microsoft.Toolkit.Uwp.Notifications | ||
Microsoft.Toolkit.Uwp.Notifications.JavaScript | ||
Microsoft.Toolkit.Uwp.PlatformDifferencesGen | ||
Microsoft.Toolkit.Uwp.PlatformSpecificAnalyzer | ||
Microsoft.Toolkit.Uwp.SampleApp | ||
Microsoft.Toolkit.Uwp.Samples.BackgroundTasks | ||
Microsoft.Toolkit.Uwp.Services | ||
Microsoft.Toolkit.Uwp.UI | ||
Microsoft.Toolkit.Uwp.UI.Animations | ||
Microsoft.Toolkit.Uwp.UI.Controls | ||
Microsoft.Toolkit.Uwp.UI.Controls.DataGrid | ||
Microsoft.Toolkit.Uwp.UI.Controls.DataGrid.Design | ||
Microsoft.Toolkit.Uwp.UI.Controls.Design | ||
Microsoft.Toolkit.Uwp.UI.Media | ||
Microsoft.Toolkit.Win32 | ||
UnitTests | ||
build | ||
githubresources | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.runsettings | ||
CODE_OF_CONDUCT.md | ||
Directory.Build.props | ||
Directory.Build.targets | ||
ThirdPartyNotices.txt | ||
UWP Community Toolkit.sln.GhostDoc.user.dic | ||
UWP Community Toolkit.sln.GhostDoc.xml | ||
Windows Community Toolkit.sln | ||
Windows Community Toolkit.sln.DotSettings | ||
azure-pipelines.yml | ||
contributing.md | ||
global.json | ||
license.md | ||
nuget.config | ||
readme.md | ||
settings.xamlstyler | ||
stylecop.json | ||
toolkit.public.snk | ||
toolkit.snk | ||
version.json |
readme.md
topic | languages | products | ||
---|---|---|---|---|
sample |
|
|
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 | ||
Pre-release beta testing | master |
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 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
- AnimationSet
- Blur
- Composition Animations
- Connected Animations
- ExpressionBuilder
- Fade
- FadeHeader
- Implicit Animations
- Light
- Lottie
- Offset
- ReorderGrid
- Rotate
- Saturation
- Scale
Brushes
- BackdropBlurBrush
- BackdropGammaTransferBrush
- BackdropInvertBrush
- BackdropSaturationBrush
- BackdropSepiaBrush
- ImageBlendBrush
- RadialGradientBrush
Controls
- AdaptiveGridView
- BladeView
- Carousel
- DataGrid
- DockPanel
- DropShadowPanel
- Expander
- GridSplitter
- HeaderedContentControl
- HeaderedItemsControl
- HeaderedTextBlock
- ImageCropper
- ImageEx
- InAppNotification
- InfiniteCanvas
- Loading
- MarkdownTextBlock
- MasterDetailsView
- Menu
- OrbitView
- RadialGauge
- RadialProgressBar
- RangeSelector
- RotatorTile
- ScrollHeader
- StaggeredPanel
- TabView
- TextToolbar
- TileControl
- WrapPanel
Developer Tools
Extensions
- FrameworkElementExtensions
- HyperlinkExtensions
- ListViewExtensions
- LogicalTree
- MouseCursor
- ScrollViewerExtensions
- SurfaceDialTextbox
- TextBoxMask
- TextBoxRegex
- ViewExtensions
- VisualExtensions
- VisualTree
- WebViewExtensions
Helpers
- AdvancedCollectionView
- BackgroundTaskHelper
- BindableValueHolder
- BluetoothLEHelper
- Colors
- Converters
- DeepLinkParsers
- DispatcherHelper
- HttpHelper
- ImageCache
- Incremental Loading Collection
- NetworkHelper
- Object Storage
- PrintHelper
- StorageFiles
- Streams
- SystemInformation
- ThemeListener
- WeakEventListener
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:
- Visual Studio 2019
- Windows SDK October 2018 Update 17763
- Sample App - Windows SDK May 2019 Update 18362
- .NET Core 3.1 SDK
- .NET Framework 4.6.2 Developer Pack
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.