Releases: CommunityToolkit/WindowsCommunityToolkit
v7.0.2
Packages available on NuGet
⚠ Be sure to read the main 7.0.0 release notes as well for migration info from 6.1.
Changes:
Breaking Changes 💥:
- #3951: Fixed ReadOnlySpan2D.Slice parameters order
Animations 🏮:
- #4014: Fixed ExpressionNode.EnsureReferenceInfo() crash with .NET Native
- #3921: Fixed incorrect timed keyframe expression
- #3929: Added AnimationBuilder.Start(UIElement, Action) overload
Controls 🎛️:
- #4020: ImageEx: test and fix setting Source
- #3957: ImageEx does not display image
- #3914: Infinite Canvas dropdown font selector 2
See More
Extensions ⚡:
- #3956: Added VisualExtensions.Translation attached property
- #3937: Update Mouse to FrameworkElementExtensions
- #3939: Fixed TaskExtensions.GetResultOrDefault() for Task.CompletedTask
Improvements ✨:
- #3960: Fix Incorrect usages of UnsetValue
- #3932: Enabled correct WeakReferenceMessenger path on .NET 5
Helpers ✋:
- #3943: Fix ColorPicker CustomPaletteColors default property value
Accessibility ♿:
- #4008: TextToolbar shortcuts should not be triggered by AltGr key
Bugs 🐛:
- #4018: Improve Messenger tests
- #4017: CI Test Failure in MVVM WeakReferenceMessenger
- #3852: incremnenralLoading-pageIndex-fix
- #4011:
InvalidArgumentException
raised byExpressionNode
in release mode - #3994: Fixed NRE when setting text on Wide tile only via TileContentBuilder
- #3955: TileContentBuilder - exception adding text on Wide tile
- #3948: Fix [ReadOnly]Span2D.TryGetSpan on legacy frameworks
- #3947:
Span2D
/ReadOnlySpan2D.TryGetSpan()
has incorrect implementation for legacy framework
Others:
- #3841: [IncrementalLoadingCollection] CurrentPageIndex should not increase if LoadDataAsync failed.
- #4012: Update for new branch name
- #4003: Update System.Text.Json version for Controls.Media package
- #3353: 2D System.Memory-like primitives (Span2D, Memory2D)
- #3906: Added solution filter for .NET projects
- #3942: Turned off layout rounding for failing tests
- #3424: Memory usage improvements/optimizations to Messenger
- #3936: Update ExecuteOnUIThreadAsync to EnqueueAsync
- #3934: Workaround for "InheritDoc" issue with "Nerdbank.GitVersioning" xml docs
- #3923: Fix few typos in comments
- #3826: Specify DataGridRowHoveredBackgroundColor beyond SystemListLowColor
- #3825: [Feature] Add more specific overrideable Color for DatagridRow hover
This list of changes was auto generated.
v7.0.1
Packages available on NuGet
⚠ Be sure to read the main 7.0.0 release notes as well for migration info from 6.1.
Changes:
Animations 🏮:
- #3843: Implicit animation binding fix
Controls 🎛️:
- #3890: Replace remaining references to ribbon to TabbedCommandBar
- #3888: Fix for FocusTracker Sample App hang
- #3884: FocusTracker Sample App Crash/Hang
- #3881: Fixes #3871 - Can't see InAppNotification border
- #3871: Can't apply border thickness property to InAppNotification
- #3878: Fix WrapPanel behavior with collapsed children
Extensions ⚡:
- #3850: Fixed ListViewExtensionsCode.bind file.
- #3849: ListViewExtensions sample is broken.
- #3854: Added unit tests for Vector2/3/4/Quaternion parsing
- #3837: Fix wrong bracket matching when parsing Vectors
Documentation 📃:
- #3901: Fixed exception message and docs for Span2D.CopyTo(Span2D)
- #3892: Update ScrollHeader sample docs to /docs/behaviors/HeaderBehaviors.md
Improvements ✨:
- #3863: Fix Package tags to better SEO on Nuget
Bugs 🐛:
- #3895: Fix notification settings disabled for unpackaged apps on 19042 and older
- #3887: Fixed crash in InvokeActionsActivity sample page
- #3866: Handle Assembly being null
- #3861: Toast notification from c++ app
- #3836: Fix notification Group property being overwritten in unpackaged apps
- #3835: Updating toast progress bar from unpackaged desktop apps doesn't work when using Group+Tag
- #3834: Clicking the information button in the sample app crashes the app
Others:
- #1234: ScrollHeader: Removed tabstop from ScrollHeader
- #3886: Add some basic tests for WrapPanel
- #3880: Merge Dev/7.0.1 into main
- #3844: Fixed issue with pipeline not running UnitTests.NetCore tests.
This list of changes was auto generated.
v7.0.0
Packages available on NuGet
Changes:
🐉 Here be Dragons! 🐉 The 7.0.0 release of the Toolkit has a lot of changes, it's our biggest release to date! Be careful when upgrading or following existing documentation as things have moved or changed from the 6.1.1 release. We've made many of these changes to help decrease the dependencies the Toolkit has and reduce the footprint it can have in applications. For our more common scenarios, this can mean a potential reduction of 80-90% that the Toolkit has on your application size.
The main substantial changes are highlighted for you here. More detailed links to specific changes in this release are blow.
Happy coding! <🦙/>
Refactoring Highlights
- The Toolkit's min version is now 1809 (see #3440)
- The Controls packages now rely on WinUI 2.5, therefore you need to follow their getting started guidance as well.
- MasterDetailsView has been renamed to ListDetailsView. #3606
- RadialProgressBar has been deprecated as the ProgressRing in WinUI now supports determine state.
- TabView has been removed, please migrate to the WinUI one.
- HeaderedTextBlock has been removed, please use HeaderedContentControl instead.
- The custom cache feature built-in to ImageEx was removed, but can be achieved by subclassing the control and overriding a method.
- The default stretch behavior for
VerticalAlignment
ofWrapPanel
has changed to align better with WPF, this will manifest if you have different sized items in your collection, you can add alignment properties to change back to the original top alignment, see issue #3574 for details on this change in behavior. If this effects you significantly, please let us know there.
- The Controls package is now a meta package of other packages, this means you can optimize your app by figuring out which controls you need are in one of the sub-packages. Find out more about this and how to leverage it to optimize your application footprint after development at https://aka.ms/wct/optimize
- The Animations package has been restructured
- Implicit animations and expression helpers should work as similar, though
AnimationCollection
is nowImplicitAnimationSet
, see more details below in feature highlights - The animation helpers that were Behaviors have been removed and replaced with our new Animation system which has helpers for behaviors and effects across the new
Microsoft.Toolkit.Uwp.UI.Behaviors
and improvedMicrosoft.Toolkit.Uwp.UI.Media
packages to create similar results with more flexibility and customizations. There is also the newUIElementExtensions.VisualFactory
which can be used for static effects as these behaviors weren't always for animations.
- Implicit animations and expression helpers should work as similar, though
- The Extensions namespace has been removed so that all extensions are available in the root namespace for their package. See Issue #3422 and PR #3743 for details.
- The Visual/Logical tree extensions have been refactored to be more explicit in the behavior and provide new functionality, see #3685 for more info.
DispatcherHelper
is nowDispatcherQueue
extensions, we've provided guidance in the deprecation messages for migration. Performing these changes will help if you plan to move to XAML Islands or WinUI 3 which can only work withDispatcherQueue
.- The Services and Parsers packages have been removed.
- The only service we'll support moving forward is for the Microsoft Graph, you can find out more about the work we're doing in that space here, these components will be updated at a later date.
- We recommend other solutions for integration with 3rd-Party services like RestSharp and Refit {.NET Foundation}.
- We recommend Markdig for parsing Markdown and plan to move to it in the future (see #3200) for our Markdown parsing needs for the MarkdownTextBlock, that code has been internalized into the new
Microsoft.Toolkit.Uwp.UI.Controls.Markdown
package. - See this simple migration doc for moving to the official .NET RSS Parser.
- The
StorageHelper
serialization story has changed, see #3636. Minimal work is required to maintain compatibility. - The Deferred event helpers have moved to the
Microsoft.Toolkit
package. - The Diagnostics APIs in
Microsoft.Toolkit
are now in a separate packageMicrosoft.Toolkit.Diagnositcs
- The MyGet feeds are no longer valid, if you want to keep up-to-date on the latest builds of the Toolkit, see our Wiki Preview Packages Page
- The Array extensions in
Microsoft.Toolkit
have moved to theMicrosoft.Toolkit.HighPerformance
package #3444 - Singleton has been removed, see #3134 for guidance on implementing this pattern
- The Visual Studio Platform Analyzers have been removed, please use the latest Visual Studio version to get the best code analysis experience for your development needs.
- The JavaScript version of the Notifications package has been removed.
- The Win32 XAML Islands packages have not received an update, please see that repo for more details
- The Graph Controls have not been updated yet to align with 7.0.0-preview5 or 7.0.0. We are in the process of continuing to re-work these controls as we gather more feedback from developers and plan an updated release later this year. In the meantime the live samples have been changed to only doc pages in the sample app. Find out more on that repo as we make changes in the open.
Feature Highlights
- MVVM Toolkit, a .NET Standard MVVM Library - docs and samples - By @Sergio0694
- Whole new fluent C# and XAML Animations! - docs - By @Sergio0694 #3680
- We have introduced a whole new way to perform explicit composition animations within XAML and in code-behind docs
- This can be mixed with Behaviors and Effects! For instance: https://twitter.com/SergioPedri/status/1351879471029219329
- Improved and unified Toast Notification API - docs - By @andrewleader
- New ColorPicker and ColorPickerButton controls - docs - By @robloo #3379
- New TabbedCommandBar control - docs - By @yoshiask #3556
- Win2D Geometry Parsers - docs - By @ratishphilip #3503
- SwitchPresenter - docs - By @michael-hawker
- Even more APIs in the HighPerformance package - docs - By @Sergio0694
- Improving support for the Visual Studio Designer - By @Nirmal4G #3318
- Improved support for .NET 5, XAML Islands, and WinUI 3. For info on trying out the Toolkit with WinUI 3 see our tracking issue here
- See Lottie's Release Notes here
List of Changes since 6.1.1
Breaking Changes 💥:
- [Refactor] Split up RangeSelector.cs file - by Rosario Pulella PR #3822)
- Changed TextBoxExtensions.PlaceHolder property name - by Sergio Pedri PR #3810)
- Animations package improvements - by Sergio Pedri PR #3796)
- Refactored Uwp.UI visual extensions - by Sergio Pedri PR #3793)
- Refactor namespaces for extension types - by Sergio Pedri PR #3743)
- [Visual|Logical]Tree extensions revamp - by Sergio Pedri PR #3685)
- Move Deferred helpers to Microsoft.Toolkit - by Michael Hawker MSFT (XAML Llama) PR #3762)
- Remove Custom Cache in ImageEx to evaluate binary impact size - by Michael Hawker MSFT (XAML Llama) PR #3736)
- Refactor ObjectExtensions -> ObjectMarshal - by Sergio Pedri PR #3760)
- Remove services and related - by Rosario Pulella PR #3757)
- Merge Dev/split controls Refactoring to Main - by Michael Hawker MSFT (XAML Llama) PR #3752)
- Move DispatcherQueueTimerExtensions to Microsoft.Toolkit.Uwp - by [Michael Hawker ...
v7.0.0-preview5
Packages available on NuGet
Changes:
🐉 Here be Dragons! 🐉 This preview contains all the refactoring we've done for the 7.0.0 release of the Toolkit. Be careful when upgrading or following existing documentation as things have moved or changed from the 6.1.1 release and the last preview. We'll be further documenting these changes as we move towards our final release, this should be our final preview.
You can see the items checked in our initial plan for some of the more details as well as the list of changes below.
Refactoring Highlights
- The Toolkit's min version is now 1809 (see #3440)
- The Controls packages now rely on WinUI 2.5, therefore you need to follow their getting started guidance as well.
- RadialProgressBar has been deprecated as the ProgressRing in WinUI now supports determine state.
- TabView has been removed, please migrate to the WinUI one.
- HeaderedTextBlock has been removed, please use HeaderedContentControl instead.
- The custom cache feature built-in to ImageEx was removed, but can be achieved by subclassing the control and overriding a method.
- The default stretch behavior for
VerticalAlignment
ofWrapPanel
has changed to align better with WPF, this will manifest if you have different sized items in your collection, you can add alignment properties to change back to the original top alignment, see issue #3574 for details on this change in behavior. If this effects you significantly, please let us know there.
- The Controls package is now a meta package of other packages, this means you can optimize your app by figuring out which controls you need are in one of the sub-packages.
- The Animations package has been restructured
- Implicit animations and expression helpers should work as similar, though
AnimationCollection
is nowImplicitAnimationSet
, see more details below in feature highlights - The animation helpers that were Behaviors have been removed and replaced with our new Animation system which has helpers for behaviors and effects across the new
Microsoft.Toolkit.Uwp.UI.Behaviors
and improvedMicrosoft.Toolkit.Uwp.UI.Media
packages to create similar results with more flexibility and customizations. There is also the newUIElementExtensions.VisualFactory
which can be used for static effects as these behaviors weren't always for animations.
- Implicit animations and expression helpers should work as similar, though
- The Extensions namespace has been removed so that all extensions are available in the root namespace for their package. See Issue #3422 and PR #3743 for details.
- The Visual/Logical tree extensions have been refactored to be more explicit in the behavior and provide new functionality, see #3685 for more info.
DispatcherHelper
is nowDispatcherQueue
extensions, we've provided guidance in the deprecation messages for migration. Performing these changes will help if you plan to move to XAML Islands or WinUI 3 which can only work withDispatcherQueue
.- The Services and Parsers packages have been removed.
- The only service we'll support moving forward is for the Microsoft Graph, you can find out more about the work we're doing in that space here, these components will be updated at a later date.
- We recommend other solutions for integration with 3rd-Party services like RestSharp and Refit {.NET Foundation}.
- We recommend Markdig for parsing Markdown and plan to move to it in the future (see #3200) for our Markdown parsing needs for the MarkdownTextBlock, that code has been internalized into the new
Microsoft.Toolkit.Uwp.UI.Controls.Markdown
package. - See this simple migration doc for moving to the official .NET RSS Parser.
- The
StorageHelper
serialization story has changed, see #3636. Minimal work is required to maintain compatibility. - The Deferred event helpers have moved to the
Microsoft.Toolkit
package. - The Visual Studio Platform Analyzers have been removed.
- The Diagnostics APIs in
Microsoft.Toolkit
are now in a separate packageMicrosoft.Toolkit.Diagnositcs
- The MyGet feeds are no longer valid, if you want to keep up-to-date on the latest builds of the Toolkit, see our Wiki Preview Packages Page
- The Array extensions in
Microsoft.Toolkit
have moved to theMicrosoft.Toolkit.HighPerformance
package #3444 - Singleton has been removed, see #3134 for guidance on implementing this pattern
Feature Highlights
- MVVM Toolkit - Find docs and samples here, see #3428 for change info between preview4 and now. By @Sergio0694
- Whole new Fluid and XAML Animations! By @Sergio0694
- We have introduced a whole new way to perform explicit composition animations within XAML (and in C#)
- This can be mixed with Behaviors and Effects! For instance: https://twitter.com/SergioPedri/status/1351879471029219329
- Find our doc PR here
- New ColorPicker control - By @robloo
- New TabbedCommandBar control - By @yoshiask
- Win2D Geometry Parsers - By @ratishphilip
- SwitchPresenter (docs and samples coming soon) - By @michael-hawker
- Improved support for the Visual Studio Designer - By @Nirmal4G
Explicit List of Changes since Preview4
Breaking Changes 💥:
- #3743: Refactor namespaces for extension types
- #3422: Review namespaces and folder structure coupling
- #3685: [Visual|Logical]Tree extensions revamp
- #3762: Move Deferred helpers to Microsoft.Toolkit
- #3736: Remove Custom Cache in ImageEx to evaluate binary impact size
- #3760: Refactor ObjectExtensions -> ObjectMarshal
- #3757: Remove services and related
- #3752: Merge Dev/split controls Refactoring to Main
- #3715: Move DispatcherQueueTimerExtensions to Microsoft.Toolkit.Uwp
Controls 🎛️:
- #3778: Update InAppNotification style to match WinUI InfoBar
- #3727: Split out input controls from core
- #3689: Aggregate packages
- #3556: [Feature] Add TabbedCommandBar (ribbon) control
- #3259: [Feature] Ribbon control
- #3647: [Bug fix] Inverted horizontalChange when in RTL FlowDirection
- #3646: GridSplitter broken in RightToLeft FlowDirection
Extensions ⚡:
- #3487: Inconsistent behavior for [Logical|Visual]Tree extensions
- #3707: [Cleanup] Split Deferred across Microsoft.Toolkit and Microsoft.Toolkit.Uwp
Documentation 📃:
Improvements ✨:
- #3746: Setup Unit Test Infrastructure for VisualTree related tests
- #3562: [Feature] Microsoft.Toolkit.Mvvm package (Preview 5)
- #3734: Minor API tweaks to the Animations package
- #3694: Snooze/dismiss support in toast button builders
- #3614: [Feature] Consistency of URI usage
- #3687: Simplified namespaces in HighPerformance package
Bugs 🐛:
- #3764: Bug fixes to ObservableValidator
- #3763: The new MVVM-Toolkit got some new bugs with the latest updated.
- #3769: #3070 Stretch the content of the expander header
- #3070: Expander Header is hard to Stretch
- #3741: ProgressRing is referenced in ImageEx but not in Style
- #3755: Fix ToastContentBuilder audio ms-winsoundevent and ms-appx
- #3753: The ToastContentBuilder is unable to set the toast notification sound to a ms-winsoundevent sound
- #3748: Fix sample: using new namespace for DispatcherQueueTimerExtensions
- #3740: Smaple.cs LookForTypeByName(string) add assmbiles to search for types.
- #3739: Split Controls: InAppNotification smaple throws execption.
- #3735: Split Controls: TileControl not animating the Y-axis
- #3703: Support for UWP .NET Native even if devs modified their Default.rd.xml
- #3093: Microsoft.Toolkit.Uwp.Notifications.dll needs to be included in .NET Native runtime directives
Others:
- #1234: ScrollHeader: Removed tabstop from ScrollHeader
- #3777: Update license and icon based on @Kyaa-dost's investigation
- #3774: Surface Dial Extension Bugs
- #3776: Changed to Cake.GitVersioning and added 'nbgv cloud' on smoke test job.
- #3766: Visual logical tree tests
- #3759: Remove parsers
- #3744: [Cleanup] Move Parsers to be internal to Markdown package, deprecate old package on NuGet
- #3758: Upgrade to WinUI 2.5 and other Dependencies - Deprecate RadialProgressBar
- #3062: [Future] 7.0 Release Plan
- #2486: ImageEx: Added caching strategy and fixed caching of the Image.
- #3428: [Feature] Microsoft.Toolkit.Mvvm package (Preview 5)
- #3645: [ReadOnly]RefEnumerable.DangerousCreate static constructors
- #3503: Added the Win2d Path Geometry parser.
This list of changes was auto generated.
🦙 If you want to help contribute to the Toolkit, see our Wiki.
v7.0.0-preview4
Packages available on NuGet
Changes:
Breaking Changes 💥:
- #3437: MarkdownTextBlock control is now in an independent package. We are working to split our Controls package into more easily consumable chunks for those apps that are worried about dependencies. For the final 7.0.0 release, we hope to have a bundled
Microsoft.Toolkit.Uwp.UI.Controls
package which will contain all sub-packages and provide a smooth upgrade experience. For now if you're using the MarkdownTextBlock and similar controls, you'll need to include theMicrosoft.Toolkit.Uwp.UI.Controls.Markdown
package separately. - #3427: Converted GazeInteraction project from C++ to C#
- #3498: Optimizations/refactoring/tweaks to DispatcherQueueHelper
- #3206: Xaml Islands Fixes.
- #3440: [Discussion] Bump Minimum Version to 1809
- #3444: Deprecated 2D array extensions from Microsoft.Toolkit
- #3435: Removed Deprecated for 7.0
- #3529: Fixed ImageEx.CornerRadius property
Controls 🎛️:
- #3379: Add ColorPickerButton
- #3363: [Feature] Add a Reimagined Color Picker
- #3471: Add FrameworkElement.VerticalAlignment and FrameworkElement.HorizontalAlignment support to WrapPanel
- #3466: Add vertical alignment support to WrapPanel
- #3528: ImageEx.CornerRadius property not working anymore
Improvements ✨:
- #3527: [Feature] Microsoft.Toolkit.Mvvm package (Preview 4)
- #3457: New Win32 toast notification helpers (no more shortcut needed!)
- #3510: Refactoring with .NET 5 Unsafe APIs
- #3509: Refactor pass with Unsafe.NullRef and Unsafe.IsNullRef
- #3490: Fixed thread safety for NetworkHelper.Instance
- #3197: NetworkHelper Singleton isn't thread safe
- #3550: Parameterless ThrowHelper APIs
See More
Documentation 📃: New Wiki!
Helpers ✋:
- #3455: Generic throw helper
Accessibility ♿:
- #3544: RadialGauge UIA improvements
- #3537: RadialGauge sample does not load when opened while narrator open
- #3539: RadialGauge: Pressing arrow key crashes app while narrator is on
- #3542: RadialGauge: Changing value does not announce changes to Narrator
- #3504: Added automation peer class for expander
- #3502: Expander control doesn't project Automation ID correctly in UI Automation tree
Bugs 🐛:
- #3558: Stop the Sample app needing to be rebuilt even when nothing has changed
- #3332: SampleApp rebuilds even if no changes
- #3543: Fixed MemoryStream seek to end validation
Others:
- #3524: Fixed ArrayPoolBufferWriter repeated new[] allocations
- #3428: [Feature] Microsoft.Toolkit.Mvvm package (Preview 3)
- #3450: Created SmokeTest projects.
- #3346: ThrowHelper APIs
- #3353: 2D System.Memory-like primitives (Span2D, Memory2D)
- #3062: [Future] 7.0 Release Plan
- #3534: Remove duplicate NuGet reference
- #3482: WinUI - Test Infra
This list of changes was auto generated.
v6.1.0
-
Features 💡
- Add the TokenizingTextBox control behaviours for initial commit - by Marcus Perryman (#3247)
- Mhawker/ttb updates - by Michael Hawker MSFT (XAML Llama) (#3319)
- .NET Core 3.0 support for desktop toasts - by Andrew Leader (#3256)
- Initial port of WindowsStateTriggers to the UWP Toolkit. - by Morten Nielsen (#3030)
- Add new WrapLayout and StaggeredLayout controls - by Shawn Kendrot (#3160)
- Guard APIs - by Sergio Pedri (#3131)
- New Microsoft.Toolkit.HighPerformance package - by Sergio Pedri (#3128)
- Win2D pipeline brushes - by Sergio Pedri (#3112)
-
Extensions ⚡
- UIElement.ClipToBounds property - by Vincent (#3193)
- Observable group extensions - by Vincent (#3246)
- Optimization/grouped extensions - by Sergio Pedri (#3260)
- FontIcon markup extension - by Sergio Pedri (#3110)
- ScrollViewer expression animations extensions - by Sergio Pedri (#3220)
-
Improvements ✨
- Added support for binding to sub-objects in ComboBoxColumn - by Filip Wallberg (#2919)
- Refactoring/Improvements based on Community Feedback to Pipeline Brushes - by Sergio Pedri (#3304)
- Making the ListExtensions feature in-line with the documentation - by Dean Chalk (#3209)
- Enabled deterministic builds. - by Alexandre Zollinger Chohfi (#3309)
- Add MasterDetailsView.SelectedIndex - by Martin Zikmund (#3275)
- Microsoft.Toolkit.HighPerformance package (part 2) - by Sergio Pedri (#3273)
- PipelineBrush and effects refactoring - by Sergio Pedri (#3298)
- Add observable group API - by Vincent (#3201)
- Allow horizontal scrolling if the horizontal scrollbar is not disabled and the vertical scrollbar is disabled - by Shawn Kendrot (#3174)
- Guard APIs for .NET Standard 2.1 - by Sergio Pedri (#3167)
- BitmapIconSource extension - by Sergio Pedri (#3334)
- Removed .net core version pinning, and updated the build pipeline to .Net Core 3.1 - by Alexandre Zollinger Chohfi (#3164)
- Replace Task.FromResult by Task.CompletedTask - by Vincent (#3162)
- Updated StyleCop to 1.1.118. - by Alexandre Zollinger Chohfi (#3189)
- Let BaseObjectStorageHelper use custom JsonSerializerOptions - by simop-msft (#3181)
- Centralized StyleCop version in Directory.Build.props. - by Alexandre Zollinger Chohfi (#3199)
- Dispatcher helper optimizations - by Sergio Pedri (#3119)
- ✔ Fix Unit Tests for Integration with CI Builds 🎉🎉🎉 - by Michael Hawker MSFT (XAML Llama) (#3207)
- Changed .Net Core Version lookup mode to multilevel - by Alexandre Zollinger Chohfi (#3219)
- Optimise Guard.IsBitwiseEqual - by John Kelly (#3325)
- Upgrade Microsoft.Xaml.Behaviors.Uwp.Managed package - by Jiaqi Liu (#3235)
- Windows.Toolkit.Uwp.UI.Media package description update - by Sergio Pedri (#3294)
- Update NuGet Dependencies & Clean-up - by Michael Hawker MSFT (XAML Llama) (#3301)
- Improved codegen in Guard APIs - by Sergio Pedri (#3323)
- tokenize text box polish - by Marcus Perryman (#3310)
-
Animations 🏮
- Update the connected animations sample to use the photos source - by Shawn Kendrot (#3242)
-
Controls 🎛️
- Fix "Italic" checkstate bug + fix "italic" typo in InfiniteCanvas control - by Ronan (#3117)
- Add TemplateParts to InfiniteCanvas and consts - by Michael Hawker MSFT (XAML Llama) (#3188)
- #3185 - Oddness with Theming and Selection in InfiniteCanvas Control - by Dean Chalk (#3194)
- #3178 InfiniteCanvas Heap Corruption - by Dean Chalk (#3228)
- Improvements to AdaptiveGrid Sample page - by Dean Chalk (#3213)
- [Bug fix] Fixed a bug where MarkdownTextBlock loses all events after … - by Jiaqi Liu (#3180)
- Fix RadialGauge default template value formatting - by Jérôme Laban (#3153)
-
Other Fixes
- Fix acrylic brush noise texture placement - by Sergio Pedri (#3336)
- Fix crash with unbounded sizing for WrapLayout. - by Marcus Perryman (#3330)
- Add missing call to
ICommand.CanExecute()
inHyperlinkExtensions
- by Vincent (#3172) - Remove IDE0059: Value assigned to variable is never used - by Vincent (#3155)
- FileCache throws NullReferenceException - by Andrew Nielsen (#3105)
- Fixes #3012 working around NuGet/Home#8388 - by Michael Hawker MSFT (XAML Llama) (#3084)
- Enabled .NetCore tests. - by Alexandre Zollinger Chohfi (#3217)
- Splitted build, tests and packaging into individual yaml steps. - by [Alexandre Zollinger Chohfi](https://gith...
v6.0.0
-
Breaking Changes 💥
- Separate Brushes in Microsoft.Toolkit.Uwp.UI to own package - Michael Hawker MSFT (XAML Llama) (#3050)
- Make sure that mask variables can be escaped in TextBoxMask.Mask - Muhammad Azeez (#2820)
- Extend RangeBase for the RadialGauge - Shawn Kendrot (#2598)
-
platform & tooling 🚀
- Added support for ARM64. - Alexandre Zollinger Chohfi (#3046)
- Note: Facebook Service Helper doesn't support ARM64 and has been deprecated. - Update projects to support editing/building with VS 2019 - Oren Novotny (#2997)
- Added support for ARM64. - Alexandre Zollinger Chohfi (#3046)
-
controls 🎛️ & features
-
control improvements
- Allow to set CroppedRegion in ImageCropper - Arcadio Garcia Salvadores (#2846)
- Adding StretchChild property to WrapPanel control - Shane Weaver (#3005)
- Add column and row spacing to the StaggeredPanel - Shawn Kendrot (#2839)
- Lazy loading feature for ImageEx - h82258652 (#2639)
-
extensions ⚡
- Add a Debounce Extension to DispatcherTimer - Michael Hawker MSFT (XAML Llama) (#3004)
- Add Singleton Pattern Helper to Microsoft.Toolkit - Michael Hawker MSFT (XAML Llama) (#3003)
-
sample app
- Sample App Update 6.0 - Michael Hawker MSFT (XAML Llama) (#3056)
- Minor Sample App/Doc Changes - Michael Hawker MSFT (XAML Llama) (#2895)
- Improve TabNavigation inside SampleApps SamplePicker panel - Barbara Martinez (#2760)
- Issue2925 sample app deep links - Matt Lacey (#2928)
-
documentation 📄
- Finish Issue Template Updates... - Michael Hawker MSFT (XAML Llama) (#2979)
- Add new format issue templates - Michael Hawker MSFT (XAML Llama) (#2978)
- Fix spelling mistake - factormystic (#2897)
- Fix docs.microsoft.com links in Readme.md - Rudy Huyn (#3019)
- Bug Emoji - Kyaa-dost (#3032)
-
Other Fixes
- Fix TextToolbar crashes on secondary window - marianstdt (#2878)
- Fix RangeSelector crash when the tooltip is removed from the template. - hhchaos (#2889)
- fix: use lock on timer to prevent concurrent access - David Bottiau (#2937)
- Make the tooltip of the range selector disappear automatically. - hhchaos (#2886)
- Graph Control Prep - Michael Hawker MSFT (XAML Llama) (#3033)
- Check for MasterDetails inline button not being null - Shawn Kendrot (#3042)
- Fix Visibility of the No Selection - Shawn Kendrot (#3041)
- Fix StaggeredPanel horizontal alignment - Shawn Kendrot (#3040)
- DataGrid fix for Issue# 2977 - Crash after deleting row above edited row - Régis Brid (#3026)
- Install .NET Core 3 as part of build - Michael Hawker MSFT (XAML Llama) (#3036)
- CreateFileasync OneDriveService - marianstdt (#2876)
- Fix for DataGrid Issue #3010 - NullReferenceException in DataGrid.ComputeDisplayedColumns - Régis Brid (#3025)
- #2922 RotatorTile _nextElement null exception - Andrew Nielsen (#2969)
- Fix ImageCropper stuck bug. - hhchaos (#2905)
- Fixed a bug where TabViewItem_Closing triggered twice after reorder - Jiaqi Liu (#2975)
- Fix edge cases when parent panel gives all space or when zero items inside StaggeredPanel, and smaller sample app issue. - Alexandre Zollinger Chohfi (#3000)
- Fix ImageCropper stuck bug when the mouse drags quickly. - hhchaos (#2908)
- Fix possible cert/pfx errors. - Alexandre Zollinger Chohfi (#2998)
- Fix potential NullReferenceException in ObservableBluetoothLEDevice - Geert van Horrik (#2906)
- Don't parse | token as a new table cell if it is escaped with \ - Hosch250 (#2974)
- New API link produces better / more concise results. - Kevin Gallahan (#2927)
- [#2931] Remove unwanted behaviour inherited by ListView - Jiaqi Liu (#2973)
- Added pdb's to the gazeinteraction nuget package - VisualByteStudios (#2916)
- Build fix - Alexandre Zollinger Chohfi (#2918)
- Fixed issue with ComboBoxColumn not updating values when changed from code - Filip Wallberg (#2780)
- Update BoldTextInline.cs - Wes Kroesbergen (#2874)
v5.1.1
Bug Fixes
animations
- Fix carousel animation bug when SelectedIndex changes quickly. - hhchaos (PR)
- Fix reorder grid animation - h82258652 (PR)
controls
- Make StaggeredPanel sensitive to HorizontalContentAlignment of children - David Lee (PR)
- Range Selector Tooltip Keyboard Fix #2730 - Stefano Tenuta (PR)
- Fix HeaderedContentControl throws ArgumentException - Dino Chan (PR)
- WrapPanel control bug fixes (issues #2804 and #2837) - Sergio Pedri (PR)
- Add null check for Content property before applying automation peer - Kevin Bronstein (PR)
- Add
IsMasked
property to DropShadowPanel - Michael Hawker MSFT (XAML Lllama) (PR) - Fix HeaderedContentControl orientation bug. - David Lee (PR)
- Fix compatibility of InAppNotification with build 17134 - marianstdt (PR)
helpers
- Fix preview pages on direct printing using PrintHelper - Lucas Rojas (PR)
- Print Helper - Fix ElementTheme on Dark Mode - AVK (PR)
documentation
- Improve packages description - Lucas Rojas (PR)
other
- fix: add unit tests to fix StringFormatConverter - David Bottiau (PR)
- Updated SDK ISO url in build script - Nikola Metulev (PR)
- Enable developer to have more control of the cursor shown for gaze - Pete Ansell (PR)
- Corrected TextBoxRegex IsValid Set() to update the correct DependencyProperty - Ryan Henderson (PR)
- Add the ImageCropper document link to readme.md - hhchaos (PR)
- Fix GazeHidParser to properly interpret negative position values - Jon Campbell (PR)
- Add Lottie links to Readme - sohchatt (PR)
v5.1.0
Major Updates
animations
- Added Lottie-Windows
Microsoft.Toolkit.Uwp.UI.Lottie
package.
controls
extensions
- OnDevice markup extension added - Fons Sonnemans (PR)
services
- Updated to work with latest Microsoft.Identity.Client - Reinhard Schuerer (PR)
Bug Fixes
animations
controls
- AlignmentGrid - Draw lines when the step value is greater than zero - Lucas Rojas (PR)
- TabView Control - Fix focus navigation - Lucas Rojas (PR)
- Infinite canvas export image #2672 - Ibraheem Osama (PR)
- SharePointFileList - Fix focus lost after tab navigation - marianstdt (PR)
- Disable TabStop property for AligmentGrid - Barbara Martinez (PR)
- Added Support for Incremental Loading in the DataGrid - Filip Wallberg (PR)
- Fix behavior on queue behind and stack in front modes - David Bottiau (PR)
- Fix DataGrid colours not adapting to Dark Theme - Daniel Martin Gonzalez (PR)
- Radial gauge step size zero - Shawn Kendrot (PR)
- GridSplitter Loaded event subscribes after initialize. - Barbara Martinez (PR)
- Add Guard and Timer to supplement EnumerationCompleted event which is missing on RS3 - Michael Hawker (PR)
- Compatibility + Null checks for RemoteDevicePicker - AVK (PR)
- Markdown parses fix for ArgumentOutOfRangeException when parsing urls - Nikola Metulev (PR)
- Expander fix for tab navigation, tab focus, and high contrast - Nikola Metulev (PR)
- Narrator x:Uid solution - Add resw file and x:Uid to controls - Lucas Rojas (PR)
- Added export options for PNG, Text and InkStrokes - Steve Nessen (PR)
- Fix for #2185 Rendered stroke are blurred on HighDPI screen and zoom - Steve Nessen (PR)
- BladeView Control - Fix tab navigation - Lucas Rojas (PR)
- Fix issue #2667 TabView on RS3 Resource Missing - Michael Hawker (PR)
- Tgoodhew/master/high contrast menu - Tony Goodhew (PR)
- Removed unnecessary Setter in NavigationView toolkit UWP Style - Agnes ZITTE (PR)
- Hide Header for HeaderedContentControl when Header is null - Shawn Kendrot (PR)
- Add support for FlowDirection in the MarkdownTextBlock - Shawn Kendrot (PR)
documentation
- Clean up Microsoft.Toolkit.Uwp.Helpers docs - Daniel Chalmers (PR)
extensions
- Fix Mouse Cursor Extensions not changing cursor back - Michael Hawker (PR)
Breaking changes
- Style Update: BladeView to work better in High Contrast Modes. - Michael Hawker (PR)
- Behavior: Replace CompositionSurfaceFactory with Platform API - Justin Liu (PR)
deprecated
- Menu control - Add deprecation message - Lucas Rojas (PR)
- [SetListDataItemForNextConnectedAnimation] Deprecated misspelled method and added correct spelling - Nikola Metulev (PR)
miscellaneous
sample app
- Fixed High Contrast Mode Crash - marianstdt (PR)
- Add fallback color to acrylic brushes on sample app - Kevin Bronstein (PR)
- Update Sample App in prep for 5.1 release - Michael Hawker (PR)
- Show how to do tri-state sorting in DataGrid Sample - Michael Hawker (PR)
- Sample App - Redirect links to Microsoft Docs - AVK (PR)
- Condense Sample App Categories + Add Subcategories - Michael Hawker (PR)
other
- Update pipeline - Oren Novotny (PR)
- Added .editorconfig, avoid conflicts with personal C# Code Style settings - Fons Sonnemans (PR)
- typo: dependancy -> dependency - Nick Schonning (PR)
- Avoid using UWP controls in the wrapper classes during design time - lhak (PR)
- metadata update - Karl Erickson (PR)
- Moving win32 projects to a new repo - Nikola Metulev (PR)
- Replaced Invoke-WebRequest with WebClient in SDK Installation script - Nikola Metulev (PR)
- Rename UwpPasswordManager.cs. - hhchaos (PR)
- Small fix to unblock custom DpiChangedAfterParent event handlers - lhak (PR)
v5.0.0
Major Updates
controls
- Added WindowsXamlHost for WPF and Windows Forms - Ryland Alanis, Richard Murillo (PR) - [documentation]
- Added XamlIslands wrapped controls for WPF and Windows Forms - Jim Wilcox (PR) (PR) (PR)
- WebViewCompatible - [documentation]
- InkCanvas - [documentation]
- InkToolbar - [documentation]
- MediaPlayerElement - [documentation]
- MapControl - [documentation]
- Added TabView control - Michael Hawker (PR) - [documentation]
- DataGrid
- Added ComboBox Column - Filip Wallberg (PR)
- InAppNotification
- Added support for High Contrast - Tony Goodhew (PR) (PR)
- MasterDetailsView
- Added BackButtonBehavior to control how the MasterDetailsView should work with and display a back button when in a narrow view - Shawn Kendrot (PR)
- RadialGauge
- Added suport for High Contrast and Narrator - Diederik Krols (PR)
- ImageEx
- BladeView
- Added support for binding of ItemsSource - Shawn Kendrot (PR)
- MarkDownTextBlock
- Added support for High Contrast - Tony Goodhew (PR)
- Added yaml header, superscript, subscript support - Richasy (PR)
- GridSplitter
- HeaderedControl
- Added orientation property - Shawn Kendrot (PR)
animations
- ConnectedAnimations - Nikola Metulev (PR)
- Added support for registering elements in code behind
- Added support for overriding navigation parameter used for animation
- Using DirectConnectedAnimationConfiguration on back navigation
services
- Added Weibo service - Void² and h82258652 (PR)
- Added .NET Framework implementations for platform specific interfaces and updated Twitter and LinkedIn services to use new implementations - Kevin Bronstein (PR)
- Added the Symbols type to TwitterEntities - Claire Davis (Strodtbeck) (PR)
- Updated TranslatorService to use the new Translator Text API v3.0 - Marco Minerva (PR)
helpers
- Gaze
- Added support for calibration - Pete Ansell (PR) (PR)
developer tools
- PlatformSpecificAnalyzer
- Added new API differences for SDK 17763 - Hermit Dave (PR)
parsers
Bug Fixes
controls
- DataGrid
- Fixed Layout cycle exceptions - Régis Brid (PR) (PR)
- Radial gauge
- Fixed arrow keys not respecting the current StepIze - Shawn Kendrot (PR)
- Expander
- Fixed collapse animation - Lucas Rojas (PR)
- Fixed issue with Expander background when ContentOverlay is set - Nikola Metulev (PR)
- Fixed background colors not switching while app is running. - Pepe Rivera (PR)
- AadLogin
- Fixed SignoutCompleted event not firing - Nikola Metulev (PR)
- GridSplitter
- Fixed theme change not updating colors - Tony Goodhew (PR)
- Menu
- Fixed MenuItem issue with Inconsistent flyout placement in vertical orientation - Ibraheem Osama (PR)
- Fixed background colors not switching while app is running. - Pepe Rivera (PR)
- AdaptiveGridView
- Fixed issue with AdaptiveGridView not laying out properly when BorderThickness is not 0 - Shawn Kendrot (PR)
- InfiniteCanvas
- Fixed issue where InfiniteCanvas was not resizing properly after initial load - Ibraheem Osama (PR)
- ImageEx
- Added caching strategy and fixed caching of the Image. - Valeriu Balan (PR)
- InAppNotification
- Fixed background colors not switching while app is running. - Pepe Rivera (PR)
WPF and Windows Forms controls
-
WindowsXamlHost
- [WindowsForms] Changed index of SetWindowLong() call to GWL_EXSTYLE to avoid crash - lhak (PR)
- [WindowsForms] Added workaround for DPI scaling issue - lhak (PR)
- [WPF] Exposed UIA Tree - ranjeshj (PR)
- Made sure we check if a type is a platform type before trying to activate it through the app's metadata provider - ranjeshj (PR)
-
WebView
- Fixed issue with DPI in WPF - Huo Yaoyuan (PR)
- WPF WebView Source property reflects current document location - Richard Murillo (PR)
- [WebViewCompatible] Use WebViewControlHost.IsSupported to avoid loading APIs on downlevel OS - Oren Novotny (PR)
services
- OneDrive Service
- Fixed issue with large file upload - Kevin Bronstein (PR)
brushes
- Fixed issue where RadialGradientBrush was not working when app is resumed - Lucas Rojas (PR)
helpers
- AdvancedCollectionView
- Fixed the VectorChanged event t...