Skip to content

v7.0.0

Compare
Choose a tag to compare
@michael-hawker michael-hawker released this 11 Mar 23:25
76a5fd9

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 of WrapPanel 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 now ImplicitAnimationSet, 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 improved Microsoft.Toolkit.Uwp.UI.Media packages to create similar results with more flexibility and customizations. There is also the new UIElementExtensions.VisualFactory which can be used for static effects as these behaviors weren't always for animations.
  • 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 now DispatcherQueue 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 with DispatcherQueue.
  • 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 package Microsoft.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 the Microsoft.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

List of Changes since 6.1.1

Breaking Changes 💥:

Animations 🏮:

Controls 🎛️:

Feature 💡:

Extensions ⚡:

Helpers ✋:

Notifications 🔔:

Improvements ✨:

Documentation 📃:

Sample App 📱:

Maintenance ⚙️:

Other Fixes:

This list of changes was autogenerated with the ReleaseNotesGenerator tool

Explicit List of Changes since Preview4

Breaking Changes 💥:

  • #3822: [Refactor] Split up RangeSelector.cs file
  • #3743: Refactor namespaces for extension types
  • #3810: Changed TextBoxExtensions.PlaceHolder property name
  • #3796: Animations package improvements
  • #3639: Feature/animation apis revamp
  • #3793: Refactored Uwp.UI visual extensions
  • #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

Animations 🏮:

  • #3629: TileControl crash when Resolution Changes
  • #3816: Added removal for Storyboard completion handler
  • #3809: Added AnimationBuilder C# sample code
  • #3701: Sample App Crashes when Searching due to Animation on Item

Controls 🎛️:

  • #3823: Don't have the GridSplitterHandle show in UIA tree
  • #3399: GridSplitter accessibility issue reported by Accessibility Insights
  • #3811: Add ContentPresenter to Logical Tree helpers
  • #3808: Fixes #3629 TileControl crashes when moving monitors
  • #3813: #3779 Fix TabbedCommandBar MinVersion
  • #3779: TabbedCommandBar MinVersion Conflict
  • #3789: Add basic SwitchPresenter Sample
  • #3671: SwitchPresenter NullReferenceException
  • #1908: Add SwitchPresenter Control
  • #3802: Fixed stack corruption bug in InAppNotification in sample
  • #3391: InAppNotification Display gets corrupted when pushing messages with different methods in queue/stack
  • #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 ⚡:

  • #3820: StringExtensions: Switch to italic instead of blue, fix bug with bold effect not being applied
  • #3821: Update XamlIslandsTest_StringExtensions to fix from Extensions namesp…
  • #3817: Fixed unit tests for Point/Rect/Size extensions
  • #3798: Deprecated StringExtensions.AsFormat extension
  • #3487: Inconsistent behavior for [Logical|Visual]Tree extensions
  • #3707: [Cleanup] Split Deferred across Microsoft.Toolkit and Microsoft.Toolkit.Uwp

Improvements ✨:

  • #3824: Sample app updates for 7.0
  • #3830: Using DispatcherQueue instead of CoreDispatcher
  • #3678: Refine enum conversion logic in IsEqualStateTrigger
  • #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

Accessibility ♿:

  • #3507: Added automation peer class for carousel and item

Bugs 🐛:

  • #3829: Add description for Controls meta package
  • #3761: Fix Visual studio release build
  • #3801: Fixed a crash with the items list animations in Sample app
  • #3783: [Bugfix] Include Microsoft.XamlIslands in UnitTest.XamlIslands.UWPApp
  • #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: Sample.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:

  • #3785: SampleApp fix. BitmapFileFormat moved assemblies.
  • #3819: Switch to fast path rendering
  • #3784: [Feature] Provide a Type MarkupExtension
  • #3389: Add NullableHelper
  • #1234: ScrollHeader: Removed tabstop from ScrollHeader
  • #3792: Removed System.ValueTuple package reference from Animations
  • #3724: Add another Baseline for understanding WinUI overhead.
  • #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
  • #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

This list of changes was auto generated.

🦙 If you want to help contribute to the Toolkit, see our Wiki.