Skip to content
Compare
Choose a tag to compare

For a comprehensive description of the Uno 4.0 release, please read our blog post.

As we’re continuing the alignment with the WindowsAppSDK, we’ve made some binary and source breaking changes in the Uno.UI 4.0 NuGet packages.

Most of these changes are minor and are generally present to remove the use of uno-specific conditional code. You can find additional information on how to migrate to Uno 4.0 on our documentation site.

See the full change log below:

Features

  • Add a FrameNavigationHelper to allow apps to access helper properties on Frame and its PackStackEntries 3826bf1
  • Add automatic restore after dotnet new 848ebcc
  • Add DispatcherQueue on CoreWIndow and CoreApplicationView e176c77
  • Add DispatcherQueueHandler and DispatcherQueuePriority 1425e7b
  • Add mixed C#/XAML hot reload support 6d3ec36
  • Add support for x:Name hot reload 083fce5
  • Add support for CustomVisualStateManager 1e7103f
  • Add support for full uri in RC endpoint c5849cc
  • Add support for local RC on remote environments 898acca
  • Add support for multiple XamlReader types conversions 8c4845d
  • Add XamlReader support for theme dictionaries d887a43
  • Adjust the Popup hierarchy 13ec2fb
  • Adjust vscode tasks/launch configurations 9f8eb9c
  • Generate C# reload cookie for omnisharp compatibility bcaa4fb
  • Android: Provide access to BaseActivity events from SpanningRectsExtension 23cca70
  • listview: [iOS] [Android] Support ItemsPresenter.MinHeight 6dfc251
  • rc: Add support for metadata update 8387262
  • xamlreader: Add reload support for event bindings 2c1f7b2
  • Add support for WinAppSDK 1.0-experimental1 31f45ea
  • Align enums (netstandard2.0) f8abe44
  • Align Panel DPs 1930257
  • Align properties (netstandard2.0) fdcf4c5
  • Align RelativePanel methods 12fb3ff
  • Align Uno.Foundation (netstandard2.0) 9a08e12
  • Align Windows.System.VirtualKey 5397faa
  • Implement FileSavePicker for Gtk c946681
  • Implement TextBox Description Property e14dd76
  • Implement WinUI CommandBar and AppBar ce12824
  • Improve generation cancellation for net5 and net6 4b612b6
  • initial setup for foldable support c0c0833
  • NavigationView InfoBadge integration 2e495ad
  • Point users to implemented versions of obsolete WUX controls 9cdaacb
  • Respond to top-level resource updates 8df6db9
  • Update to WinAppSDK 1.0 9fd0a0c
  • Update TwoPaneView to latest WinUI b221201
  • android: Adjust Foldable screen nuget package naming db1d7ae
  • Border: Add ability to use GradientBrushes for BorderBrush af760ff
  • dragdrop: Add support of preview of dragged element on iOS and Android b749632
  • GTK: Detect ApplicationPreferDarkTheme property change e6a173f
  • IncrementNumberRounder: Implement RoundDouble Method 0fdab8e
  • NumeralSystemTranslator: Implement TranslateNumerals method for Arab and ArabExt NumeralSystem value ee3e611
  • perf: Improve perf of the ObjectAnimationUsingKeyFrame 3818924
  • pointers: [GTK] Implement native pointer capture 624631a
  • SignificantDigitsNumberRounder: implement RoundDouble method e30b006
  • vsix: Restore Xamarin template for VS2022 e0a7bde
  • WPF: Observe system theme during runtime f1ea619
  • xamlreader: Support StaticResource assignation to non-DP fd535d2
  • xamlreader: Update Setter.Value when theme changes 7ba8c58
  • GetRadiosAsync() for Android 110d466
  • Improve generated enums eccc12e
  • Initial API surface validator b296076
  • Port RadioMenuFlyoutItem 9b388c1
  • Support Dark theme in Samples app 2f93a19

Bug Fixes

  • animation: Fixed a problematic case where a native animation can be 'lost' if the GC is run during the duration of the animation, preventing the animation from being removed and leaving the UI in an undetermined undesired state. 81547ef
  • template: Adjust dotnet new unoapp 57657f2
  • vscode: Remove duplicate sln block a0021b8
  • Add error message when linker is enabled during EnC session 7c261dd
  • Add keepalive messages for RC client abc5093
  • Add missing Immutable assembly for hot-reload generators 2f64555
  • Add missing NavigationViewItemPresenter.InfoBadge property dabfe9a
  • Add missing short flags for dotnet new 2294217
  • Add server-side keepalive 8965b2f
  • Add support for globbing in the shared project for vscode compatibility 87b32c3
  • Adjust dotnet detection for C# hot reload 74e7803
  • Adjust hot reload support for VS 2022 a6727d8
  • Adjust InfoBarPanel namespace to match WinUI 9784afa
  • adjust remote control target to net6 1a95097
  • Adjust removal of uno websockets dependency 9d3feb2
  • Avoid jumpy ScrollViewer visibility on Skia 0573b47
  • Avoid TextChanged loop in GTK 997fd15
  • Cache IsApiContractAvailable properly 6feacd3
  • Capture all xaml handlers f26804a
  • Disable assembly loading feature in XamlSchemaContext c2ddc8f
  • Disable rolsyn generators for below MSBuild 17, fallback to uno source generators 1f5868d
  • Dispose appinsights configuration 67deda2
  • Don't call CloseAllPopups on Frame navigation 3438fee
  • Don't create a window while checking dotnet version ca1d8ae
  • Don't fail on missing metadata updater (net5 support) ab1c748
  • Don't initialize telemetry on design time builds c7ffe08
  • Don't regenerate source for ResourceDictionary runs adbd48d
  • Fix support of the CustomVisualStateMamager 4cb5983
  • IndexOutOfRange in DisplayRegionHelper.GetRegionInfo a4d301d
  • metadata update after XAML hot reload breaks compilation 1c1d352
  • Observe C# file changes 5abdebd
  • Port IsPaneVisible fix from WinUI (microsoft/microsoft-ui-xaml#6227) d52b71e
  • Propagate cancellations for more locations 1548c75
  • Remove deprecated GenerateBuild for VS2022 compatibility b8cf02a
  • FoldableApplicationViewSpanningRects: change Bounds pix to dip 13a8c44
  • FoldableApplicationViewSpanningRects: remove dependency on MainActivity 4ded713
  • VS2022 23c4467
  • dragdrop: Fix support of transparent control in DragUI ef0b6fd
  • ItemsControl: [Android] Adjust collection update reset for ComboBox 8581995
  • ItemsControl: Fix for applying ItemContainerStyle dc7a7a9
  • listview: [Android] Correct scroll offsets if necessary when scrolling upwards in list 5e8bce5
  • listview: [Android] Fix crash on animated collection change 96cb63c
  • listview: [Android] Fix crash when animating item 7d05e4c
  • pointers: Improve relialibilty of hold gesture by always starting a timer on press when hold has been enabled. 4d18f58
  • reg: ensure both net6/xamarin templates don't share ids 8ac1147
  • TextBox should not get focused while manipulating ScrollViewer 87c9626
  • listview: [Android] Fix flicker and clipping when ListViewItem.Margin is set 801f51c
  • reg: [Android] Fix application content squeezed top left 595d4ea
  • winui: Adjust DispatcherQueue implementation 263f914
  • Add workaround for editorconfig race condition 787c644
  • Bump x:Load timeout for large tests 45bd906
  • Make sure that an element can invalidate itself (and its parents) while in being measured / arranged 6f30b05
  • Border: Allow null BorderBrush to be set decb376
  • calendar: Fix CalendarDatePicker cannot be scrolled when re-opened d161c91
  • docs: Fix a few typos in VS2022 article f3e0a12
  • docs: headers' anchor visibility is now hover 6dcf009
  • listview: [iOS] Fix container reuse by template 868446f
  • listview: [WASM] [Skia] Correct scroll offsets if necessary when scrolling upwards in list cd74fd9
  • perf: Do not box Point for equality check a4d673d
  • reg: Fix CornerRadius support on Border 9f0b463
  • reg: Move DispatcherQueue to WinUI location 443a76f
  • reg: Popup light overlay's was not rendered properly c2fcd60
  • reg: Restore sizechanged propagation 30b0a0e
  • Remove duplicate guids in solution file 4935613
  • Skip generation run info for design-time builds 63d5ab5
  • Use proper reference path validation for resource generation 18a4d6d
  • VS Remotre control .NET version lookup 80ad551
  • calendar: Fix initial scrolling state of the CalendarView d68c05f
  • DependencyObjectGenerator: Place BindableAttribute on the correct type 852265c
  • docs: Incorrect NuGet package name in logging.md c549ddc
  • dotnetnew: Remove invalid solution filters in dotnet new unoapp 11d4b56
  • DualScreen: add RecyclerView to try and address linker issue 1b04f21
  • DualScreen: attempt to address possible linker issues f3d3052
  • DualScreen: remove unnecessary CreateInstance call in SamplesApp.Droid 225d0f2
  • Duo: Observe all configuration changes for samples app 9d35b7b
  • effectiveviewport: [Android] The SCP is now the element flagged as ScrollHost, like on UWP 43f56d0
  • effectiveviewport: [iOS] The SCP is now flagged as ScrollHost f4b1937
  • effectiveviewport: Fix effective viewport computation 3448722
  • effectiveViewport: Make sure to raise the event when initializing multiple elements with EVP handlers 2ee3b50
  • Foldable: fix bad merge 33586e0
  • Foldable: update to use Foundation.Logging 96a5762
  • FoldableApplicationViewSpanningRects: remove testing hack dcbcb14
  • FoldableApplicationViewSpanningRects: revert change Bounds pix to dip 3b2b2a1
  • HitTest: Check for Clip property for ClippingBounds 97152dd
  • listview: Fix D&D UI not reporting move while reordering items 30fd8d3
  • menuflyout: Ensure MenuFlyout nested submenus stay on screen cd13998
  • pointers: [iOS-simulator] Improve debug by starting a timer for Holding on iOS when in simulator 3c6ce3d
  • pointers: [Skia] Make sure to also release impiclit captures on pointer realease f3d53bc
  • pointers: Make sure to abort drag manipulation as soon as possible if not touch pointer 1045c76
  • pointers: Release implicit captures on manip completed d307101
  • reg: Fix EVP not progated on native elements 42ac6dc
  • reg: Fix EVP sometimes not propagated properly 932b82f
  • reg: Fix support of Android versions below 30 (including UI test failing on CI) 07c3d23
  • [Android] LayoutSlot was including magrins and alignments 9743762
  • [Android] Window's visible bounds are incorrect 39ea361
  • reg: Fix Viewport not updated on first load 7f2409b
  • scrollbar: Fix possible layout cycle when scrollbar is lower than the min size of the thumb ceba136
  • scrollviewer: [WASM] Make the SCP the "element which scrolls" (instead of the SV) ee21a4e
  • viewport: Fix effective viewport adding scroll offsets twice d05ebc4
  • Alignment regressions 9ee447d
  • Fix lazy theme dictionary caching 8a43603
  • Fix TextBox selection in Skia 851b3d9
  • Update text according to AcceptsReturn d318146
  • ItemsControl: avoid rebinding containers on collection change 4ed5bc4
  • listview: [WASM] Support removing item while dragging 0c301cf
  • pointers: Ensure that a manipulation cancelled by ManipStarting event is cleanup e1f5543
  • reg: Adjust processors missing roslyn files a083153
  • reg: Fix support of scroll offsets in ViusalTreeHelper c72890c
  • reg: Fix WinUI build f9b33f6
  • reg: Invalid location for android30 logging nuspec 60718cb
  • reg: Restore string conversion a391022
  • remotecontrol: Adjust https conversion 6477280
  • resourcedictionary: Improve performance of ResourceDictionary with not-implemented types 94aad18
  • scrollviewer: [WASM] Fix ScrollViewer incorrect offset after ChangeView() 7fddb8f
  • styles: Fix error in styles loading with null Resources 685b396
  • transformtovisual: [iOS] Fix TransformToVisual inside ListView b3c0a7b
  • transformtovisual: Fix TransformToVisual on scrolled ScrollViewer df3f88d
  • wasm: Image/AcrylicBrush.AssignAndObserveBrush exception 73df35b
  • xamlreader: Fix exception when loading with empty Resources 3f58203
  • xBind: [Wasm] Fix invalid internal ElementStub state ef37b28
  • xBind: Fix xBind to other control without code-behind base class 76b2dba
  • Add and apply NumberBox CommonStates 500c262
  • Adjust enums 52fdbfc
  • Adjust InputScope on iOS and implement for Wasm 7a28cd2
  • Adjust PackageDiffIgnore 4772f08
  • Alignment regressions 3a6b90f
  • Apply visual states on date change cc08128
  • Assign ImageBrush on Android properly 118e4db
  • Changing Pivot.SelectedItem should reflect on Pivot.SelectedIndex 166e7a7
  • Convert resources to target property type in generated code 873251d
  • Correctly change PivotHeaderItem content when PivotItem.Header changes 5a85199
  • Correctly handle whitespaces in XBind path rewriter dfeb4a5
  • Disable Prism template test 7e0c367
  • Disable XF template test 8fb48bf
  • Don't close ContentDialogs on showing MessageDialog cd4b9e4
  • Don't flag members as not implemented in bindable metadata 1f4351d
  • Don't PreventDefault keydown event of TextBox 205e8fc
  • Don't underline HyperlinkButton if not ImplicitTextBlock c1ef8c1
  • Don't use cached value when it's no longer valid 8b94591
  • Don't use nullable reference types in generated code b167107
  • Error properly on invalid and duplicate x:Name 82c1d52
  • Fix CurrentStateChanged raised in incorrect time e6f39f5
  • Fix image flickering 9b6a8fc
  • Fix NREs in PersonPicture 876bdf1
  • Fix TextBox.Foreground on Skia c8f4b47
  • Fixed SignificantDigitsNumberRounder.RoundDouble bug 223d8d2
  • Generate analyzer suppressions properly edc8542
  • Generate WebView.XYFocus properties 414816c
  • GridViewItems are not visible 8583c31
  • Handle converters and TargetNullValue in source generator 422e026
  • Handle types correctly in ResourceDictionary 11b8a40
  • Hide open flyouts when MessageDialog is shown 0b00af4
  • HyperlinkButton underline 3c12d17
  • Initial focus on Page a444b7a
  • Invalid sourcegen update 6b3815b
  • Invalidate cached theme dictionary when theme dictionaries are added/removed 57068a3
  • ios commandbar navigationcommand icon alignment 7497510
  • IsInContact is reported incorrectly for pointer events 8b10ac2
  • IsInRange reported incorrectly in GTK 0e13068
  • Make IsIntermediate setter internal fc06bd4
  • Make sure that if TSInteropMarshaller.Allocate fails, we get the right exception ba663c0
  • Move Background in default app template to Page 3c03e70
  • Open suggestion list when focus, reflect text changes 8dc6472
  • Overwrite runtime tests results file if exists 9b399c3
  • Parse boolean correctly to not cause crash 0adb4fa
  • Promote RS0030 (banned API) diagnostic to error 2803f4c
  • Reduce number of exception raised by RemoteControloClient cf45c19
  • Reduced the severity of the inconsistency message while adding/removing elements in Visual Tree on WASM. b8dfc4b
  • Report not implemented diagnostics for generated code 4377f08
  • Respect Opacity when rendering gradient brushes b92cdd8
  • xbind: x:bind may not be evaluated if x:Load is true during Loading cc665d2
  • xLoad: Adjust x:Load and x:Bind loading sequence a5217bf
  • restore net6.0 for WebAssembly, disable linker in debug 1d447ca
  • Reveal-based brushes crash on Skia 7aeb392
  • Revert "fix: Add and apply NumberBox CommonStates" 82116b4
  • Skip WebView.XYFocus properties 3130bbe
  • Text selection on WASM 56f9afa
  • Tweak the Popup hierarchy 7a8403c
  • Tweak the Popup hierarchy II 0ac1241
  • 2022: Fix remote control build under VS2022 1a1b091
  • Android: Fix NRE when TextBlock.FontFamily is null 5a428c9
  • dragdrop: [wasm] Even if multi-window is not supported yet, instanciating a new Window without using it would crash the app due to D&D 53dc06d
  • FindName: Handle resources and non-FrameworkElement objects a4492c3
  • listview: [Android] Fix drag-to-reorder not applying 4a49f7d
  • listview: [Android] Fix errors when dragging rapidly 1d94cf8
  • reg: Fix OAUKF tests 9098250
  • vsix: Add missing embedded resources a7e29c1
  • wasm: geometry not receiving pointer events 89ffb4f
  • xLoad: [Android] Fix invalid x:Load reentrancy issue 9784464
  • xLoad: Fix x:Load nesting and ElementStub strong reference 9371f72
  • Retry on detached DOM element 3b9ab82
  • Show error from DependencyObjectGenerator if type is android/ios/macos view symbol 4ea8c1f
  • Tweak the Popup hierarchy III eea84a6
  • Update PathMarkupParser to latest from Avalonia 9a6ba19

Reverts

  • Revert "fix: Disable rolsyn generators for below MSBuild 17, fallback to uno source generators" 2eac0a3

  • feat!: Align with WinUI 3 desktop apis bdb7295

  • fix!: Make some classes static to match UWP 53f6d4e

  • fix!: Generate property setters only when needed d9bdd5d

  • fix(combobox)!: Make ComboBox inherit from Selector 63f35c3

  • fix!: Make CoreDispatcher.Main internal to match UWP 5363a1f

  • fix!: Match FlyoutBase.Opened,Closed,Opening with UWP 1ab5f89

  • fix!: Fix resource dictionary path handling 30f21ac

  • fix!: Fix InputScope on Android to match UWP behavior e5fea16

Performance Improvements

  • hotreload: Reduce the memory allocation d582d9e
  • reg: Fix performance regression in fast convert da59fc5
  • wasm: Place loaded/unloaded exception handling behind a flag 9cd9f35
  • Do cheap check first 620bc35

BREAKING CHANGES

  • This change is a binary breaking change only.
  • android: Move Uno.UI.DualScreen to Uno.UI.Foldable
    • Removal of Uno.Extensions.ObservableCollectionUpdateResultsExtensions
  • Removal of UIAsyncOperation.CompletionSource
  • Changed type of ApiInformation.NotImplementedLogLevel to Uno.Foundation.Logging.LogLevel
  • Windows.UI.Text.FontWeights and Windows.UI.Colors are removed from Uno.WinUI. Use Microsoft.UI.Text.FontWeights and Microsoft.UI.Colors instead.

This change also moves to use the up-lifted Input APIs provided by the Microsoft.UI.Input namespace.

  • Some classes are now static to match UWP.
  • Some properties now no longer have setters to match UWP.
  • ComboBox now inherits from Selector rather than ListViewBase, to match the UWP/WinUI inheritance hierarchy.
  • CoreDispatcher.Main is no longer public.
  • Align FlyoutBase.Opened, FlyoutBase.Closed, and FlyoutBase.Opening signature with UWP.
  • Source paths starting with '/' are now considered relative to project root instead of current file.
  • Introduces a breaking change for InputScope that is controlled by FeatureConfiguration.TextBox.UseLegacyInputScope
f8ba0fe
Compare
Choose a tag to compare

Uno Platform's 3.11 release ships 160+ features and bug fixes and adds support for  .NET 6 RTM with all related improvements.  

As Microsoft had announced the delay for .NET 6 support for Android and iOS, we've re-introduced Xamarin-based templates for Visual Studio 2022. Additionally, the support for preview .NET 6 Android and iOS has now been moved to 17.1 Preview 1.

In Visual Studio 2022, you'll find now two templates:

  • One named Multi-Platform App (UnoPlatform|xamarin), which uses the existing stable Xamarin "Classic". It is the same as found when using Visual Studio 2019.
  • One named Multi-Platform App (UnoPlatform|net6), which uses the .NET 6 preview support for iOS, Android, macOS and Catalyst and requires Visual Studio 17.1 preview 1.

You can setup your environment with Uno.Check 1.0.2 for Windows, macOS and Linux, which you can install as follows:

dotnet tool install -g uno.check

Then run:

uno-check

Here's a summary of the features for this release:

  • Support for VS 2022 and .NET 6 RTM
  • Drag and drop preview element support on iOS and Android
  • NumeralSystemTranslator for Arab Numeral System
  • Native pointer captures for GTK
  • FileSavePicker for Gtk
  • Support for RadioMenuFlyoutItem
  • Support for IncrementNumberRounder and SignificantDigitsNumberRounder
  • Support of GetPeerRadioAsync

As always, many thanks to our contributors:

You'll find below the full change log for this release.

Features

  • Android: Provide access to BaseActivity events from SpanningRectsExtension 23cca70
  • listview: [iOS] [Android] Support ItemsPresenter.MinHeight 486e8eb
  • vsix: Restore Xamarin template for VS2022 7fb276a
  • Add a FrameNavigationHelper to allow apps to access helper properties on Frame and its PackStackEntries 3826bf1
  • Add support for ios/android C# hot reload in net6 template 1414414
  • Add support for WinAppSDK 1.0-experimental1 31f45ea
  • GetRadiosAsync() for Android 110d466
  • implements AppMemoryUsage and AppMemoryUsageLimit for Android bd55b64, closes #5891
  • Improve generation cancellation for net5 and net6 4b612b6
  • Support Dark theme in Samples app 2f93a19
  • Border: Add ability to use GradientBrushes for BorderBrush af760ff
  • dragdrop: Add support of preview of dragged element on iOS and Android b749632
  • NumeralSystemTranslator: Implement TranslateNumerals method for Arab and ArabExt NumeralSystem value ee3e611
  • perf: Improve perf of the ObjectAnimationUsingKeyFrame 3818924
  • pointers: [GTK] Implement native pointer capture 624631a
  • VS2022: Add support for uno remote control 178f682
  • vsmac: Add support for unoapp template solution filters c240f34
  • Implement FileSavePicker for Gtk c946681
  • Implement MenuBarItemAutomationPeer ddd0bed
  • make versioned fluent resources linker friendly 52d3bcc
  • Port RadioMenuFlyoutItem 9b388c1
  • Replicates CalendarView style fixes for fluent 2 e61d99c
  • Upgrade to .NET 6 RC1 d110581
  • Vector3 XAML conversion 2aa0be9
  • IncrementNumberRounder: Implement RoundDouble Method 0fdab8e
  • SignificantDigitsNumberRounder: implement RoundDouble method e30b006

Performance Improvements

  • hotreload: Reduce the memory allocation d582d9e
  • reg: Fix performance regression in fast convert da59fc5
  • wasm: Place loaded/unloaded exception handling behind a flag 9cd9f35
  • Add the ability to disable SetTargetValue exception handling 9eb4efa
  • Additional changes to mitigate PG-AOT dotnet/runtime issue #56309 218fd00, closes #56309 #7005
  • Additional changes to mitigate PG-AOT dotnet/runtime issue #56309 ba58785, closes #56309 #7005
  • Adjust Grid, StoryBoard and VisualStatGroup enumerations 5b112e9
  • Apply various workarounds for dotnet/runtime issue #56309 5cbbec2, closes #56309
  • Remove foreach in FrameworkTemplatePool dc0bc5f
  • Remove foreach in ItemsControl.UpdateItems b34954e
  • Remove try/catch handling in OnFwElt Loading/Loaded/Unloaded 17f2e4f
  • wasm: Don't use try/finally in Grid measure/arrange fb22656

BREAKING CHANGES

  • fix!: Fix resource dictionary path handling 30f21ac
  • Source paths starting with '/' are now considered relative to project root instead of current file.

Bug Fixes

  • Fix the wasm only CalendarViewCrippledAnimationStyle for fluent v2 dd3ac57
  • animation: Fixed a problematic case where a native animation can be 'lost' if the GC is run during the duration of the animation, preventing the animation from being removed and leaving the UI in an undetermined undesired state. 81547ef
  • Border: Allow null BorderBrush to be set decb376
  • calendar: Fix CalendarDatePicker cannot be scrolled when re-opened d05bbc8
  • calendar: Fix initial scrolling state of the CalendarView 50829e8
  • DependencyObjectGenerator: Place BindableAttribute on the correct type 852265c
  • docs: Fix a few typos in VS2022 article f3e0a12
  • docs: Incorrect NuGet package name in logging.md c549ddc
  • dragdrop: Fix support of transparent control in DragUI ef0b6fd
  • effectiveviewport: [Android] The SCP is now the element flagged as ScrollHost, like on UWP 43f56d0
  • effectiveviewport: [iOS] The SCP is now flagged as ScrollHost f4b1937
  • effectiveviewport: Fix effective viewport computation 3448722
  • effectiveViewport: Make sure to raise the event when initializing multiple elements with EVP handlers 73d782d
  • HitTest: Check for Clip property for ClippingBounds 97152dd
  • ItemsControl: [Android] Adjust collection update reset for ComboBox 8581995
  • ItemsControl: avoid rebinding containers on collection change 4ed5bc4
  • ItemsControl: Fix for applying ItemContainerStyle dc7a7a9
  • listview: [Android] Correct scroll offsets if necessary when scrolling upwards in list 5e8bce5
  • listview: [Android] Fix crash on animated collection change 96cb63c
  • listview: [Android] Fix crash when animating item 7d05e4c
  • listview: [Android] Fix flicker and clipping when ListViewItem.Margin is set 7425947
  • listview: [iOS] Fix container reuse by template 868446f
  • listview: [WASM] [Skia] Correct scroll offsets if necessary when scrolling upwards in list cd74fd9
  • listview: [WASM] Support removing item while dragging 3c6e6e4
  • listview: Fix D&D UI not reporting move while reordering items 30fd8d3
  • menuflyout: Ensure MenuFlyout nested submenus stay on screen cd13998
  • perf: Do not box Point for equality check a4d673d
  • pointers: [iOS-simulator] Improve debug by starting a timer for Holding on iOS when in simulator 3c6ce3d
  • pointers: [Skia] Make sure to also release impiclit captures on pointer realease f3d53bc
  • pointers: Ensure that a manipulation cancelled by ManipStarting event is cleanup e1f5543
  • pointers: Improve relialibilty of hold gesture by always starting a timer on press when hold has been enabled. 4d18f58
  • pointers: Make sure to abort drag manipulation as soon as possible if not touch pointer 1045c76
  • pointers: Release implicit captures on manip completed d307101
  • reg: [Android] Fix application content squeezed top left 595d4ea
  • reg: ensure both net6/xamarin templates don't share ids 0f62edd
  • reg: Fix CornerRadius support on Border 9f0b463
  • reg: Fix EVP not progated on native elements 42ac6dc
  • reg: Fix EVP sometimes not propagated properly 932b82f
  • reg: Fix support of Android versions below 30 (including UI test failing on CI) 07c3d23
  • reg: Fix support of scroll offsets in ViusalTreeHelper c72890c
  • reg: Fix Viewport not updated on first load 7f2409b
  • reg: Popup light overlay's was not rendered properly c2fcd60
  • scrollviewer: [WASM] Make the SCP the "element which scrolls" (instead of the SV) ee21a4e
  • transformtovisual: [iOS] Fix TransformToVisual inside ListView 162dee5
  • [Android] LayoutSlot was including magrins and alignments 9743762
  • [Android] Window's visible bounds are incorrect 39ea361
  • Don't close ContentDialogs on showing MessageDialog cd4b9e4
  • Don't use nullable reference types in generated code b167107
  • scrollviewer: [WASM] Fix ScrollViewer incorrect offset after ChangeView() 7fddb8f
  • Fix lazy theme dictionary caching 8a43603
  • ios commandbar navigationcommand icon alignment 7497510
  • resourcedictionary: Improve performance of ResourceDictionary with not-implemented types 94aad18
  • scrollbar: Fix possible layout cycle when scrollbar is lower than the min size of the thumb ceba136
  • transformtovisual: Fix TransformToVisual on scrolled ScrollViewer df3f88d
  • viewport: Fix effective viewport adding scroll offsets twice d05ebc4
  • xBind: [Wasm] Fix invalid internal ElementStub state ef37b28
  • xBind: Fix xBind to other control without code-behind base class 76b2dba
  • xLoad: Fix x:Load nesting and ElementStub strong reference 9371f72
  • Assign ImageBrush on Android properly 118e4db
  • Convert resources to target property type in generated code 873251d
  • Reduce number of exception raised by RemoteControloClient cf45c19
  • Reduced the severity of the inconsistency message while adding/removing elements in Visual Tree on WASM. b8dfc4b
  • Respect Opacity when rendering gradient brushes b92cdd8
  • Update text according to AcceptsReturn d318146
  • xLoad: Adjust x:Load and x:Bind loading sequence a5217bf
  • Overwrite runtime tests results file if exists 9b399c3
  • wasm: Image/AcrylicBrush.AssignAndObserveBrush exception 73df35b
  • Add and apply NumberBox CommonStates 500c262
  • add missing progressbar changes in resources v2 b47e2ce
  • Add missing ProgressRing v2 style 4f23bf5
  • Adjust vsconfig to include iOS/Android workloads d262e3b
  • Apply visual states on date change cc08128
  • Changing Pivot.SelectedItem should reflect on Pivot.SelectedIndex 166e7a7
  • ComboBox WinUI 2.6 border workaround 1991964
  • Correctly change PivotHeaderItem content when PivotItem.Header changes 5a85199
  • Correctly handle whitespaces in XBind path rewriter dfeb4a5
  • Don't PreventDefault keydown event of TextBox 205e8fc
  • Don't underline HyperlinkButton if not ImplicitTextBlock c1ef8c1
  • Don't use cached value when it's no longer valid 8b94591
  • Downgrade template default to be net5.0 for VS2022 35234e8
  • Fix image flickering 9b6a8fc
  • Fix NREs in PersonPicture 876bdf1
  • Fix Selected state in PivotHeaderItem 603f42a
  • Fixed SignificantDigitsNumberRounder.RoundDouble bug 223d8d2
  • Flyout should return focus to previously focused 4d8af83
  • Generate analyzer suppressions properly edc8542
  • GridViewItems are not visible 8583c31
  • Handle converters and TargetNullValue in source generator 422e026
  • Hide open flyouts when MessageDialog is shown 0b00af4
  • HyperlinkButton underline 3c12d17
  • Initial focus on Page a444b7a
  • Invalid sourcegen update 6b3815b
  • Invalidate cached theme dictionary when theme dictionaries are added/removed 57068a3
  • Make sure that if TSInteropMarshaller.Allocate fails, we get the right exception ba663c0
  • Move Background in default app template to Page 3c03e70
  • Open suggestion list when focus, reflect text changes 8dc6472
  • Parse boolean correctly to not cause crash 0adb4fa
  • Popup should receive focus if its child is focusable e6c03bc
  • Promote RS0030 (banned API) diagnostic to error 2803f4c
  • restore net6.0 for WebAssembly, disable linker in debug 1d447ca
  • Reveal-based brushes crash on Skia 7aeb392
  • ToggleButton WinUI 2.6 border workaround d08d589
  • 2022: Fix remote control build under VS2022 1a1b091
  • Android: Fix NRE when TextBlock.FontFamily is null 5a428c9
  • commandbar: [iOS] Don't fetch the internal TitleView parent on invalidate measure 0a9a729
  • dragdrop: [wasm] Even if multi-window is not supported yet, instanciating a new Window without using it would crash the app due to D&D 53dc06d
  • dragdrop: Preserve DragDropExtension JS entrypoint a5ba887
  • FindName: Handle resources and non-FrameworkElement objects a4492c3
  • flyout: Take Flyout position into account correctly 73e5d83
  • listview: [Android] Fix drag-to-reorder not applying 4a49f7d
  • listview: [Android] Fix errors when dragging rapidly 1d94cf8
  • PersonPicture: Add v1 WASM workarounds to v2 style. Remove negative margin for clipping 0eae0c1
  • progressbar: Reverted to "v1" template for ProgressBar because the "fluent v2" is causing animation problems. 6fe3a0c
  • progressring: The AnimatedVisualSource was recreated too often, loosing the playing state of the current player. Logic has been added to only create a new source when required. 59c4904
  • reg: [Android] Fix icon cut off in NavViewItem in compact mode 5d2eac8
  • reg: Fix OAUKF tests 9098250
  • vsix: Add missing embedded resources a7e29c1
  • vsix: Don't enumerate nuget packages on the UI thread 42ec898
  • wasm: geometry not receiving pointer events 89ffb4f
  • xbind: x:bind may not be evaluated if x:Load is true during Loading cc665d2
  • xLoad: [Android] Fix invalid x:Load reentrancy issue 9784464
  • Retry on detached DOM element 3b9ab82
  • Revert "fix: Add and apply NumberBox CommonStates" 82116b4
  • Show error from DependencyObjectGenerator if type is android/ios/macos view symbol 4ea8c1f
  • Text selection on WASM 56f9afa
  • Unchecked CheckBox should not have visible glyph a9d201e
  • Update PathMarkupParser to latest from Avalonia 9a6ba19
  • Various visual issues in WinUI 2.6 styles 08e4dfb
Compare
Choose a tag to compare

This is a service update for the 3.10 release, with some changes and bug fixes for .NET 6 support and Visual Studio.

  • fix: TextBlock text selection on WebAssembly #7088
  • Use .NET 6 and Uno.Wasm.Bootstrap 3.0.0 #7120
  • Added support for XAML Hot Reload for VS 2022 #7066
  • Added support .NET 6 iOS/Android C# Hot Reload in VS 2022 #7066
  • Fixed VS2022 performance issue #7066
  • ProgressRing: The AnimatedVisualSource was recreated too often #7075
  • Adjust VS 2022 .vsconfig for Preview 4 #7083
  • fix(Android): Fix NRE when TextBlock.FontFamily is null #7132
Compare
Choose a tag to compare

Uno Platform 3.10: Day-0 support for .NET 6 RC1, WinUI InfoBadge, Windows 11 Fluent Styles

We continue to evolve Uno Platform in lockstep with the latest Microsoft developer platforms and tooling. Our 3.10 release supports .NET 6 RC1, latest developments in WinUI.

We are following developments in .NET 6 and Visual Studio 2022 until their general availability and look forward to bringing to you all the productivity, performance and stability benefits this latest wave of innovation from Microsoft is enabling for all of us.
In addition, we closed over 150 new features and issues requested by our community and clients, as well as added 30+ samples to our documentation.

As always, thanks to our community contributors:

You can view the full blog post for this release here.

Features

  • Upgrade to .NET 6 RC1 d110581
  • Vector3 XAML conversion 2aa0be9
  • background_sizing: Added support of BackgroundSizing on Wasm 8afd0c8
  • background_sizing: Fixed compilation for Skia (background sizing not implemented yet) 219a42e
  • BadgeNotification: Support for Tizen e5dc94f
  • BadgeNotification: Support for WASM b7237fd
  • New default Android, iOS and Mac Catalyst Uno Platform app icons 587ec89
  • background_sizing: Added support for BackgroundSizing on Android 7a9b306
  • background_sizing: Added support for the BackgroundSizing DependencyProperty + a sample for it. c3f8315
  • fillrule: Correctly implement FillRule for iOS & macOS 1c90c0e
  • fillrule: Correctly implement Path.FillRule on Android d0b9213
  • fillrule: Fix FullRule on Wasm when GeometryGroup is used ed89a82
  • geometrygroup: Add preliminary support for GeometryGroup on Skia. FillRule not fully supported yet. 64226f5
  • measureview: Added the ability to .MeasureView() to measure eiter the content of the whole control for and HTML elements. f1607a9
  • wasm_measureview: Added the ability to call .MeasureHtmlView() from application code. Useful to implement .MeasureOverride() in Wasm applications. 27e31b8
  • DeviceBluetooth - common 53bd836
  • background_sizing: Fixed compilation for iOS & MacOS (background sizing not implemented yet) dbbcecc
  • datepicker: Added a new [UnoOnly] UseNativeMinMaxDates property on DatePicker & NativeDatePickerFlyout to allow the picker to be restricted to some date instead of just the year. Properties MinYear and MaxYear are still used for that since they are already of type DateTimeOffset. 33ffc12
  • dragdrop: Add ability to drop external content into wasm app 36c9eaa
  • dragdrop: Fix support of external DragAndDrop to app on wasm b5942de
  • runtime: Add ability to provide a CT for InvokeAsync c38c00c
  • wasm: Add ability to manipulate a File using NativeStorageItem 0ffb4e0
  • ActualTheme and ActualThemeChanged 5485f52
  • Add optional XAML and Bindings Trimming 5d956f2
  • Add ResourceDictionary retemplate 1b5acbd
  • Add ResourceDictionaryWithCodeBehind template e2f48bc
  • Add support for DataContext inheritance for non-UIElement bd1c297
  • Add Thumb control default style 97b0cb7
  • Added CompositionColorGradientStop implementation 14210e6
  • Added CompositionColorGradientStopCollection implementation 61628e1
  • Added CompositionEllipseGeometry implementation 10f2466
  • Added CompositionGradientBrush implementation 38db8d6
  • Added CompositionLinearGradientBrush implementation ab93de0
  • Added CompositionLineGeometry implementation fe75691
  • Added CompositionRadialGradientBrush implementation 031eae3
  • Added CompositionRectangleGeometry implementation 8309bc7
  • Added CompositionRoundedRectangleGeometry implementation 3c5bc14
  • Added property change propagation notification for CompositionObjects 543b834
  • BackdropMaterial fallback support dfee434
  • BackgroundTaskDeferral for Android 2c4d7ee
  • Contact and ContactAddress, warning when setting to longer than UWP 1d8a3c2
  • fields for Android ToastNotification 639ea22
  • Hide delete button when TextBox isn't large enough 003462f
  • Implement SelectionStart, SelectionLength on Skia e10659e
  • Implement sizing methods for ApplicationView 945a8c0
  • Implement TextBox.Select, TextBox.SelectAll on all platforms b0f7646
  • Initial support for CoreWindow.GetKeyState dc4517d
  • Support for RenderTransform on Android LinearGradientBrush 5b54e1f
  • Support for SettingsIdentifier, SuggestedStartLocation and SuggestedFileName on WASM 0048e4b
  • Support PasswordBox on Skia 3f03c60
  • listview: Implement drag-and-drop scrolling and visual states ab6a898
  • pointers: Add inertia support in manipulation events 40f8d54
  • shapes: Finished the implementation of GeometryGroup in Wasm/SVG d322267
  • test: Add runtime tests automatic retry support 8919f17
  • Windows.Devices.Radios common enums 91f8385
  • pointers: Fully implement the inertia processor 288bdc8
  • shapes: Implemented all geometries on Wasm 0d4e7cf
  • wasm: Added ability to measure shapes on Wasm even when the control is not loaded. fe2c502
  • ScheduledToastNotification 6427e28
  • SystemTrigger Android implementation 90f591d

Performance Improvements

  • [Android] Improve DisplayInformation performance 111affb
  • Additional changes to mitigate PG-AOT dotnet/runtime issue #56309 218fd00, closes #56309 #7005
  • Additional changes to mitigate PG-AOT dotnet/runtime issue #56309 ba58785, closes #56309 #7005
  • Apply various workarounds for dotnet/runtime issue #56309 5cbbec2, closes #56309
  • Improve DependencyProperty propagation ea6381e
  • Improve nullability checking in DependencyProperty 5f50f1f
  • Move Brush inheriting types to be lazy in ResourceDicionary 9954c4d
  • Remove DateTimeOffset from TimeLine 96585ff
  • Use invariant culture in XamlFilePathHelper fbf79fb
  • Use lazy split regex creation in FastConvert 1e49c0f
  • use switch(string) for bindablemetadata lookups f74fe23
  • android: Adjust clipping computation performance 6b3f2eb
  • android: Cache Stroke/Fill system style to reduce interop c410a4a
  • android: Don't sort Canvas children below 2 986d922
  • android: Move SimpleOrientationSensor off the UI thread 8f5666e
  • android: Simplify Activity instances tracking fbe91b5
  • android: Use HashTableEx in FontHelper 0fc8e52

Bug Fixes

  • [Skia] Fix layout when RevealBrush is used 9f5e1a8
  • Add support for VS 2022 in sync generator 4947bc1
  • Add XAML source generator cancellation support 0e4964d
  • Add XAML source generator cancellation support dd4b19e
  • Apply coercion before value is set 7be2c37
  • Apply icon color correctly inside native AppBarButton 4055a07
  • Apply pointer visual states of pivot items 341205f
  • ComboBox WinUI 2.6 border workaround 1991964
  • Compare NaN correctly f509baf
  • Disable light-dismissing MessageDialog 3c27bd3
  • Exception was not reprotyed properly in async calls on WASM f93e40d
  • Fallback to specific regional culture if neutral culture isn't found 1b35aed
  • Fix faulty indentation d6ec852
  • fixes TextBox cursor color for Android 29+ 375db65, closes #6240
  • Flyout should return focus to previously focused 4d8af83
  • Generate native ctor only when a ctor with required signature exists in base types 3691e08
  • Handle scaling less than 100% on Wasm 7937de6
  • ImageBrush RenderTransform does not throw a633fa9
  • LinearGradient angle should be reflected in EndPoint 1ffe017
  • Popup should receive focus if its child is focusable e6c03bc
  • ToggleButton WinUI 2.6 border workaround d08d589
  • Unchecked CheckBox should not have visible glyph a9d201e
  • Border: Adjust UI Test snapshots differences after changes for pull request 6898 (Related to Uno.Themes - #616) 56cba36, closes #616
  • commandbar: [iOS] Don't fetch the internal TitleView parent on invalidate measure 0a9a729
  • CornerRadius: [Android]Remove twice drawn border, adjust Background that was underneath the border and properly calculate inner corner radius for common cases 4d0976a
  • dragdrop: Preserve DragDropExtension JS entrypoint a5ba887
  • Propagate focus properties from Flyout to Popup host 7cac6bc
  • Remove net5.0 target option for skia/wasm dc13854
  • getbbox: Fixed GetBBox bug 93a663c
  • xamlreader: Load ThemeResources properly 06609d6
  • Propagate focus properties from FlyoutPresenter caf0ffb
  • Propagate focus property changes from PopupBase to Child 9f8b3af
  • Set method of attached property must have 2 parameters 9b1c2c1
  • Use SymbolThemeFontFamily instead of hard-coded Segoe MDL2 Assets 9dae693
  • geometrygroup: Fixed a situation where the change handler could not be set on the GeometryCollection 794d4e6
  • reg: Fix SelectedIndex update when ItemsSource is ObservableCollection 2747773
  • Add missing implementation for text alignment on macOS 680ce6c
  • Correctly check if the TextBox is PasswordBox befo 4e02fba
  • Handle justified text for TextBlock on Android 8104c69
  • Hide MS Edge reveal password to avoid duplicate reveal buttons a5e9160
  • Use SkiaSharp.Views.WPF for .NET Core target c03af67
  • animation: Fix DAUKF not cancelling its frames when stopped 1af267b
  • animation: Fix transition animation not cancelled 144348c
  • animations: Ensure VisualState and VisualTransition are materialized in the right resource context 77b769d
  • ColorPicker: event subscriptions when reloaded e30e8c3
  • ColorSpectrum: not rendering on skia/wasm f3216d8
  • dragdrop: [iOS] [Android] Support drag over events when native view in hierarchy 1fe777a
  • layoutinformation: [Android] [iOS] Return correct GetAvailableSize d073d39
  • listview: [Android] Fix glitches during drag-and-drop df5a4ed
  • listview: [Android] Improve performance when updating list items 6187297
  • pointers: [Android] Fix ListView scrolling with manipulation aa0d67f
  • pointers: [iOS] Fix ListView scrolling with manipulation 27cb649
  • pointers: [iOS] Fix pointers never goes to parents element of a ScrollViewer 3ee8c33
  • pointers: [iOS] Fix possible "additonal move on relase" being raise more than once 46cbabb
  • pointers: [skia] Fix captures atomatically released when leaving control 9cc3661
  • pointers: Fix manipulation not being aborted on pointer released if in Starting state 2204d14
  • pointers: Make sure to disable pointers interception by scrollable contents as soon as a conflicting manipulation or a drag starts 05b553c
  • reg: Ensure that Setters are also applied in the right context 84923a7
  • Disable implicit .NET 6 Pre 7 global namespaces imports f902d6a
  • Fix .NET Native Logging missing metadata caf9771
  • wasm: AssignAndObserveBrush impl for GradientBrush 352ce18
  • Don't include type name in doc comment due to roslyn bug 88a180c
  • Fix checking symbol type when it's nullable ref type 2459f60
  • Fix linear gradient border not working on Wasm 1d8a4bd
  • Fix visual state for disabled selector items 35c1ef9
  • Handle SelectedIndex properly when removing/adding before the selected index 057f0ea
  • Upgrade ProjectCapability for VS 2022 b5a84be
  • Use StringUtil.FormatString instead of string.Format for WinUI C++ resources a9aad90
  • iOS: Update src/Uno.UI/Controls/Window.iOS.cs e676922
  • reg: [iOS] Fix pointer event was raised on SCP parent before SCP children dcb9534
  • Account for keyword-like identifiers in native ctor generator b6f48e0
  • Move CookieManager and related classes to runtime assembly 8e6770f
  • Null-check focus children in tab order c258537
  • appbarbutton: [iOS] Fix AppBarButton icon sometimes disappearing 9335a0a
  • dependencyproperty: Only permit one binding at a time 1b18fee
  • iOS: [Window] Null pointer exception 4da2c20
  • itemscontrol: [iOS] Fix DisplayMemberPath support 0a2db57
  • itemscontrol: Bind DisplayMemberPath target 4102f1b
  • pointers: Make sure to also update position with inertia ea762b2
  • pointers: Make sure to not continue an invalid manipulation c9b6df5
  • tests: Ensure that UI tests are retried under more conditions 35e40d4
  • Add 'base.' to make sure we not access generated property with same base name abbcce6
  • Adjust missing accessibiity for gtk app 2187e70
  • Apply suggestions from code review 40d9ab7
  • Cleanup few warnings a47f480
  • ComboBox does not handles the PointerPressed event d32199f
  • Don't generate invalid code when x:Load and StaticResource markup is used 70f756b
  • Don't mark buildTransitive files in Uno.UI.MSAL as content 54a2d50
  • Ensure that all uno controls defined dependency properties are using FrameworkPropertyMetadata b70d640
  • Fix GetHashCode implementation of NamedTypeSymbolStringComparer 27cd5f8
  • Fix split regex to fix failing test fb83f5f
  • Followup fix to .NET 6 template ade19e5
  • Hardware back button on Android is not working 28d6cf8
  • Ignore case and other allowed suffixes 3f45f12
  • Ignore MarkupExtensionReturnType to match UWP behavior 2029360
  • Parse XAML 'Run Inlines' correctly in Span ed16f3e
  • Pass inner exception per feedback 592dd0f
  • Sync solution template updates 4e7f224
  • WASM TextBox getting focus when part of recycled template 0d00391
  • flyout: placement with position provided f8fb109
  • macOS: contentControl intercepts pointer events ce41d41
  • reg: Fix missing accessibilty for GTK samplesapp head ff13258
  • reg: Fix tap gesture no longer recognized since the pointer properties has changed in simulated move eff29c3
  • Allow separating by spaces and/or commas ffa761d
  • Allow trailing 'px' for grid length cade3da
  • Apply scaling for browser tests 6199682
  • ComboBox should handle PointerReleased 0aceccf
  • Correctly handle access modifiers in XamlfileGenerator 245df0a
  • Ensure content in Canvas in Canvas is visible 3858136
  • Ensure focus is lost when clicking outside app content 68940da
  • Ensure PRI file is included in the nuget package 47bd3cb
  • Fix merge issue which rollbakcs changes of #6163 05fbbfe, closes #6163
  • Fix the build. c294989
  • Fixed Rectangle rendering when using stroke thickness 54433d8
  • Generate valid code for type in default namespace in DataTemplate 83cb5b3
  • LinearGradientBrush can't generate with explicit GradientStopCollection e7153af
  • Properly generate string literals using Roslyn API 2a4a83e
  • Support for non-UIElement ElementName binding in global ResourceDictionary 318f24d
  • elevatedview: shadow not appearing on uwp 94cafcd
  • flyout: Ensure namescope propagation for flyout content 42f7d9e
  • macOS: Window sizing 792ef7b
  • menuflyout: Position MenuFlyout correctly with native AppBarButton cb6802f
  • msal: Move package generation to nuspec for net6 compatibility 939fd95
  • pointers: [iOS] Fix support of "fast gestures" like swipe 8d37557
  • pointers: Fix pointer velocities are invalid when manipulation interia is running 489483e
  • pointers: Fix pt args timestamp's on WPF was in ms instead of ticks 5de1fe7
  • pointers: No longer normalize manip.rotation in [0,360[ si speed and inertia are computed properly. 3a53398
  • Selector: firing order of data-bound dp & event b3f64a6
  • shape: Setting a 's Data property to null after an actual value were causing a NRE (NullReferenceException) 9cf2b29
  • swipecontrol: Fix inertia of SwipeControl by using the manipualtion's inertia e168422
  • swipecontrol: Make sure no Button.Click is trigger when manipulating the SwipeControl 51f3451
  • visibleboundspadding: Adjust for Window.Current being null 9e35fd3
  • xBind: Fix support for FallbackValue 8744c50
  • Reduce focus search logging level da49d4e
  • Report a warning when xaml code behind does not have correct base class specified. eec0d81
  • Silence warning 4773f77
  • ToolTip implementation 5583919
  • Update VS2022 vsix owner fffc677
  • use correct diagnostic rule. Fixes #3412 627a8b5, closes #3412
  • Write UnoNotImplementedAnalyzer using IOperation to avoid false negatives 1e88ffe

BREAKING CHANGES

  • animation: VisualState.Setters are now applied after VisualTransition.Storyboard
2918e34
Compare
Choose a tag to compare

This newest release brings support for .NET 6 (for iOS, Android, mac Catalyst and macOS), support for Visual Studio 2022 templates, WinAppSDK 0.8.1, Focus management updates, a XAML Trimming feature to reduce the size of WebAssembly apps by nearly 50% as well as many other improvements and bug fixes.

For more details about this release, take a look at our blog post.

We've closed many other issues and added other features, and as always thanks to our contributors!

Features

  • AccessibilitySettings class (99726d5)
  • Add dotnet new .NET 6 mobile templates (5b9d4b7)
  • Add FlipView Implementation (aefdc9b)
  • Add FlipView Sample Pages (530c8a5)
  • Add Flipview styles (bfc5d20)
  • Add net6 support (2427544)
  • add vs2022 vsix support (334bf7c)
  • Allow default button cursor configuration on WASM (de8504a)
  • AnimatedIcon (607d3b9)
  • AnimatedIconSource (ceb9887)
  • ComboBox.OnDropDownOpened/Closed (13c8716)
  • CreateIconElement tracks and updates created instances (27a35b5), closes #6168
  • Enhance support for focus management (8a48451)
  • ImageIconSource (452adda)
  • Implement WUX IconSources, update MUX IconSources (bbc56d9)
  • Implemented MarkupExtensionReturnTypeAttribute (eee861b)
  • Implemented WebHostHiddenAttribute (262d3b5)
  • Improve error reporting with Roslyn-hosted generators (8c3a0d7)
  • Update InfoBar to latest from MUX (0f4fe67)
  • Upgrade template to WinAppSDK 0.8 (257ac12)
  • ConnectionProfile: [WPF] Adds support for ConnectionProfile.GetNetworkConnectivityLevel() (1eab4e6)
  • ConnectionProfile: [WPF] Review Feedback - Adjusted name to Windows specific; Fixed code style; Added nullable code file to new files (74cb66e)
  • geometry_bounds: Added .Bounds support for some Geometry implementations. (ee6ed7f)
  • Initial implementation of FileOpenPicker for Skia.Gtk (4cd398a)
  • Initial implementation of FolderPicker for Gtk (d35733f)
  • separate implementations (48ce37e)
  • Support for CachedFileManager (1673873)
  • Update TabView to latest MUX (eb3c105)
  • WinUI ImageIcon (547020f)

Bug Fixes

  • elevatedview: shadow not appearing on uwp (94cafcd)
  • Map Key.KP_Enter to VirtualKey.Enter (b6207be)
  • selector: Fix support for ObservableCollection.Move (3fcdff3)
  • templates: Ensure resource files are not tranformed (ffa5a31)
  • Remove dependency on System.Json package (46a2856)
  • android: Clamp android animation scale values to accepted values (bb00bfe)
  • BindableDrawerLayout: unable to add removed pane back (b354803)
  • Droid: Keyboard not getting correct height (Android 11) (41d30a1)
  • Layout: [Android] Properly round values when converting logical to physical pixels. Apply rounding offsets for Path rendering (0920cf3)
  • netstdref: Fixed UI Runtime Tests project were not compiling for netstdref target. (a310ea3)
  • rect_union: Fixed a calculation bug with .Union on Rect class. (2425c81)
  • SourceGenerators: Use custom initializer for Duration (c881abd)
  • wasm_imagebrush: Fixed a bug when ImageBrush on shapes was dynamically changing on Wasm: the previous image were not removed from the SVG pattern. (8e64a36)
  • Adjust for invalid splashscreen uri (8faa64e)
  • Allow running multiple full window runtime tests in succession (26a2055)
  • Auto fallback to vibration on Android haptics (4750cfc)
  • Ensure missing WinUI styles are generated properly (d447e3d), closes #6366
  • Fix sr-Cyrl resourcesloading (f8c3208)
  • Remove redundant pdb copy for WebAssembly Compatibility (37febd1)
  • samplesapp: Fixed a cross-threading exception on UWP (07bf66d)
  • Adjust for missing symbols when running on macOS 10.14 (6989126)
  • Resource Dictionary issue (239ca6a)
  • binding: Don't try metadata lookups on internal and struct types (148ccc6)
  • calendar: Fix setting Width and Height on Calendar does nothing (2be72c9)
  • calendardatepicker: The type CalendarDatePicker were wrongly makred as not implemented. (ad89368)
  • grid: Support Grid attached properties on native views (4ae7c3e)
  • reg: Fix double path separator for lottie assets (07ab523)
  • Allow multiple default value providers (d39362b)
  • Avoid LinkerSafe deprecated warning on iOS (dad3c90)
  • Fix WebAuthenticationBroker wrongly reported as NotImplemented. (e52c854)
  • Fix Xaml merge task not supproting conditional namespaces (b2cb1af)
  • Geolocator.RequestAccessAsync() not returning on ios14 (e126671)
  • Hide dotnet new templates from VS 2019 new projects dialog (0ac2570)
  • JSObjectMetadataProvider throws due to duplicate method names (1db10be)
  • Move property to main class (dd05c8f)
  • ThemeResources (fbaf9d5)
  • Update MSTest to fix local runs (a5a145e)
  • update test to run only on WASM (e149dab)
  • Update the ToggleButton WinUI style (07622d1)
  • Use explicit Lazy initializer (e9d02f3)
  • ApplicationLanguages: Prevent NullReferenceException for ManifestLanguages (60a913f)
  • calendar: Avoid flicker when changing DisplayMode (9179695)
  • calendar: Fix few C++ translation issues (35aaf79)
  • calendar: Fix possible blank year view when opening closing calendar picker multiple times (ef5201e)
  • calendar: Fix year and decade view initial scrolling on Android (0045a8c)
  • calendar: Improve reliability of calendar by safely handling invalid cases (bdf98f1)
  • dispatcherqueue: Fix foward compatibility of .DispatcherQueue (2cf2a01)
  • ScrollViwer: Implementing methods (2f75601)
  • templates: fixed minor typo (3693f35)
  • WASM: UITest (c85ce37)
  • UITest (0826de4)
  • wasm: Fix invalid splash screen path resolution (3f25381)
  • Use IsTrimmable instead of LinkerSafe (5104a45)
  • Use sr instead of sr-Cyrl-BA (09d05f5)
  • Use UNO_BOOTSTRAP_WEBAPP_BASE_PATH to support path-based deep-linking (890d5d5)
  • CalendarView: Fix header not upding while scrolling (95d34f6)

Performance Improvements

  • shapes: Removed the InvalidateArrange() in shape when the fill/stroke is changed. (d3b7bff)
1c03259
Compare
Choose a tag to compare

The new 3.8 release ports additional WinUI controls and layouts, such as the often-requested CalendarDatePicker control, to all Uno-supported platforms getting us one huge step closer to realizing the #WinUIEverywhere vision.

In addition, the new release brings up to 2x performance improvements in some scenarios, realized from the new Grid implementation as well as DependencyObject and UI Elements creation improvements. We also introduced new AOT and WebAssembly features, built on top of recently released Microsoft work on .NET.

On the Linux front we are pleased to enable new scenarios so you can target embedded systems using the FrameBuffer as well.

In addition to new UI and Performance features and improvements, the team has closed many issues. Closing issues timely is crucial in further fueling large projects enabling customers like Kahua to port a massive line of business applications from desktop to Web. We are particularly proud of the fact that with every release we close more issues than have been opened in the previous period; it shows a healthy and quickly maturing open-source project. Our huge thanks go to all our contributors @xperiandri, @Crixerker, @mterwoord, @scolapicchioni, @trungnt2910, @johnthepro and @pkar70!

See all the detailed updates in our blog post.

Features

  • Cursors loaded from Gtk display theme. Support for more cursors on Gtk 6ce492a
  • calendar: Add support for Chrome eabe306
  • calendar: Add support of selection (and navigating back to Decade/Year mode to Day mode) b6d1dc6
  • calendar: Enable auto scrolling to today 1589851
  • calendar: Enable phase loading 0badfcf
  • calendar: Implement virtualisation 430fe39
  • calendar: Improve scrolling experience 7d564b2
  • calendar: Initial import of the CalendarView 392e356
  • calendar: Make some items visible! 53cca3f
  • calendar: Make the CalendarView header appear, allowing to change display mode 099bbf7
  • calendardatepicker: just finished translating the WinUI C++ code for CalendarDatePicker f0c90b4
  • calendardatepicker: Set default Min/Max date for CalendarDatePicker to +/- 100 years. 4e3180b
  • CalendarView: Add Uno specific properties to make styling easier 4044058
  • GTK: Launcher.QueryUriSupportAsync support for Gtk Linux ca677a8
  • WPF: Launcher.QueryUriSupportAsync support for WPF 3049f16
  • Add ControlsResourcesVersion property for WinUI 2.6 compatability 65fe529
  • Add support for Linux FrameBuffer and libinput c3550b9
  • Add template support for Linux FrameBuffer ba04fc8
  • Add the BorderLayerRenderer on wasm 590350b
  • App/Window activation and visibility on Android fb18f1f
  • App/Window activation and visibility on GTK 7b711d2
  • App/Window activation and visibility on iOS 5dbf801
  • App/Window activation and visibility on WASM 8b7914f
  • App/Window activation and visibility on WPF 2a7959c
  • missing ActivationKind values bfd6cd4
  • Support for WinUI's internal DXamlCore.GetLocalizedResourceString() 83dbbe4
  • Upgrade cross-platform library template to uwp 18362 0839b79
  • scrollviewer: Implement the SCP.ScrollOwner (avoids anoying logs on wasm, android and ios) ab3ccb6
  • App/Window activation and visibility on macOS d32ba14
  • Application.Exit on GTK and WPF 55bfe8a
  • Update wasm templates to use .NET 5 64f6639
  • Use preventDefault to prevent browser from processing Handled events 974f689
  • ApplicationView: IsViewModeSupported, TryEnterViewModeAsync 23493ac
  • grid: Replaced the logic by the WinUI's one. ea0b254
  • layoutpanel: Implementation of LayoutPanel f2380ef
  • scrollviewer: Add ability to configure scrollbar's auto-hide delay, and fully disable auto-hide a5ec556
  • showlocalvisualtree: Improved the display of .ShowLocalVisualTree() by adding details about Grid/Canvas positioning. 96b8086
  • uniformgridlayout: First working version of UniformGridLayout 7f0a361
  • Support for iOS universal links 3a7253e

Performance Improvements

  • [Skia] Remove weak registrations in UIElement constructor e84146f

  • [Wasm] Don't deserialize unused TS interop output 52f5b5d

  • [Wasm] Improve UIElement.Visibility set to Collapsed 0be67af

  • [Wasm] Improve SetBackgroundBrush performance 14d996e

  • [Wasm] Improve text set color 07c794b

  • [Wasm] Register on ScrollContentPresenter pointer events only when native d25f9cc

  • [Wasm] Restore conditional DO hard references b968add

  • Add various controls creation benchmarks 1de5dac

  • Build only one logger for static style methods f4651c9

  • Explicitly limit DependencyPropertyDetail array pool max length 34923c4

  • Generate Brush.Opacity and RelativeTransform DPs 516fbb6

  • Improve DependencyPropertyDetails performance 640a543

  • Initialize UIElement.KeyboardAcceleratorsProperty lazily 61c4223

  • Make Grid.RowDefinitions and ColumnDefinitions lazy initialized feaad83

  • Make VisualState and VisualTransition lazy loaded 64a79fc

  • misc performance improvements on DependencyObjectStore 9c01d26

  • Move all UIElement TextHelpers to UIElement c1a776b

  • Push active system theme to ResourceDictionary 2322829

  • Reduce foreach/linq usage in pointers management d5b622a

  • Remove unused WeakReference read-back on creation 6cfe4c8

  • Skip ClearPointersStateIfNeeded during ctor 7d74f48

  • Use cached DependencyProperty comparer 6ef9e81

  • grid: Added more cases to Grid benchmark 3ae96b1

  • VisualState: Create VisualState.Setters and StateTriggers backing collections lazily 5c14003

  • Use for loops in DependencyObjectCollection 0f64934

  • grid: Added a new multidimension test to grid. 53b3618

  • fix!: Exclude Windows.UI.Xaml.UIElementExtensions from Xamarin platforms 3cbea4f

Bug Fixes

  • reg: Add missing FocusVisualLayer fddc5b0
  • Fix Xaml merge task not supproting conditional namespaces e76c7ec
  • ApplicationLanguages: Prevent NullReferenceException for ManifestLanguages 60a913f
  • calendar: Avoid flicker when changing DisplayMode 9179695
  • calendar: Fix background not applied properly on all items ec1c39f
  • calendar: Fix blackout foreground color 08229b9
  • calendar: Fix decade and year view scrolling on wasm 819e28e
  • calendar: Fix decade/year/month navigation bc51190
  • calendar: Fix first date always top/left 4702c59
  • calendar: Fix measurement issues 077f48e
  • calendar: Fix possible blank year view when opening closing calendar picker multiple times 02a25e8
  • calendar: Fix possible null ref in measure 70c5afa
  • calendar: Fix possible null-ref d589e89
  • calendar: Fix possibly failing assert ddb505a
  • calendar: Fix scrolling issues on iOS (inc. allow ChangeView on SV when not yet arranged) f9f463d
  • calendar: Fix stretching on iOS 7af5a44
  • calendar: Fix the Month and Decade views on Android 5cf9732
  • calendar: Fix today + selected visual state c473ae1
  • calendar: Fix vertical stretching (most probably not on Android and iOS) 31ae25b
  • calendar: Improve reliability of calendar by safely handling invalid cases 6bf96e5
  • calendar: Make sure to always fill the viewport aa570e4
  • calendarpicker: Make sure to clear the over visual state when closing and re-opening the picker a19d2c8
  • calendarview: Fixed #6160 c0c1bc5
  • calendarview: Removed a potential exception while recycling elements 7685dcb
  • Use UNO_BOOTSTRAP_WEBAPP_BASE_PATH to support path-based deep-linking 890d5d5
  • calendar: Fixed a potential crash when SetToMin()/SetToMax() were used in multi-eras calendars 9549557
  • calendar: Year and Decade views are not working on Android d4b1a81
  • calendardatepicker: Fixed compilation on other platforms af2bf91
  • calendardatepicker: Now closes the opened picker when the control is unloading 9121bd9
  • calendarview: fixed potential NRE when unloaded before being fully initialized 34657f0
  • TextBox: Update fluent textbox resources and style to match the latest WinUI source code [Reunion 0.5] and fix resources for dark theme ee22bc5
  • XamlFileGenerator: Generate literal properties for ResourceDictionary subclasses f5b7e4b
  • xamlloader: Fixed potential NRE error when loading problematic XAML content f53c955
  • Fix ChangedView raised too early 32ecb8d
  • Fix dependency generation not allowing to set only DPChangedCallbackName 89de363
  • Fix merge issues a5392e6
  • Possible null-ref in MenuBar d46acd2
  • Restore ability to have empty control template 55b18a8
  • Setting JumpListItem.Description null crashes on Android 4625009
  • calendardatepicker: fixed date picking were not working. 7e170e2
  • calendardatepicker: Fixed default value for .Date : should be null, not DateTimeOffset.MinValue. 93ecfca
  • calendarview: Fixed default min/max dates for CalendarView to use the same logic as other date-related controls. 4f4bcad
  • enability: Fixed a recent regression in generated code about IsEnable property 7b8bacd
  • pointer: IsLeftButtonPressed were wrongly true on the PointerRelease event e89a48b
  • remotecontrol: Fixed annoying "Uri format" parsing error while launching apps with RemoteControl activated. cf88024
  • samplesapp: Fixed NRE during application starting. 9943d91
  • xBind: Add support {x:Null} syntax 1a6c2fd
  • BindingHelper may not provide properties when using WinUI fa1d1ad
  • Fix compilation of the ref library ba767c5
  • Fix possible scroll to out of bounds of the SV on iOS d1f0296
  • Fixes DP generation 8ba9656
  • skiagtk: Remove unused incorrect dependency in Uno.UI.Runtime.Skia.Gtk and FrameBuffer aaf1809
  • TextBox: Remove FocusRing on macOS 53ec039
  • Incorrect SymbolIcon NotImplemented attribute platform list 6f0f98a
  • Invalid warning when building with UWP and referencing the Uno.UI package 383e553
  • Prism template WebAssembly project is missing 0920bd9
  • Update BindableTypeProvidersSourceGenerator to be stateless per generation 6238d7b
  • Use absolute path resolution for AppManifest 51c70bb
  • treeview: Fix error when items of last nested item are cleared 35cbb69
  • Typo in prism template initialization 2b1bb95
  • applicationlanguages: Added support for Script Subtag for ApplicationLanguages.PrimaryLanguageOverride fa13149
  • Border: Fix EvenOdd winding paths when drawing corner radii 2176f87
  • combobox: [Android] Fix ComboBox background disappearing 0ab27e5
  • datepicker: Adjust picker flyout placement 7046ab0
  • datepicker: Default date were not set when the control were created. daf4812
  • datepicker: Fix datePicker .Date is not correctly updated. e435d25
  • datepicker_flyout: Adjust the flyout placement to appear at the right place on all platforms. 1b4e0b2
  • DisplayInformation: [Android] DisplayInformation cannot be used too early d101fd5
  • generation: Add a warning when project path contains # 497ffa6
  • grid: Ensure the layout of the Grid is invalidated when the collection of definitions changes. c0dc1a9
  • grid: Fix a bug with new Grid implementation on Skia where the "Pixel" mode were not properly applied when the UseLayoutRounding were true. db07a62
  • grid: Fix regression when setting ColumnDefinition.Width cb3b962
  • grid: Fixed a problem when the collection could be locked more than once. 91db60b
  • grid: prevent a NullRef Exception when .Arrange() is called before .Measure() 1eea149
  • grid: Removed the possibility of a NullRefException when .Arrange() is called before calling .Measure() first. ccff7f9
  • grid: The RowDefinition and ColumnDefinition were implementing the IList twice, causing compilation resolution problems in application code. cf07412
  • GTK: pointer events in wrong locations using Wayland a7b59c0, closes #5706
  • macos: Fixed the macOS solution to include missing projects. 9ae6877
  • pointers: [Skia] Fix some pointers event not being sent to nested elements when pointer implictly captured f7f9cf0
  • pointers: ManipCompleted is not invoked when pointer is stoll by SV and pointer is out of the bounds the element 8c651da
  • popup: Put Popup in Parent hierarchy of its Child content. aa1755a
  • RadioButtons: Ensure RadioButton is selected on initial load f93eac3
  • RadioButtons: Fix MaxColumns is not bound properly 68c72c8
  • rc: Adjust server processors path dd39a82
  • remotecontrol: safe fallback when directories search list is empty 80f1493
  • revealbrush: Use RevealBrush FallbackColor 035c614
  • Possible NRE when applying visual state setters on unknown targets b995392
  • scrollbar: Fix ValueChanged event not raised d8f6026
  • WASM: SrollViewer.ChangeView to end of page 59fd566
  • Build fails Samples App on iOS 7d66918
  • test: Ensure [ActivePlatform] in UI Tests works with NUnit's [TestCase] d4ab54c
  • Bump uno.sourcegenerationtasks for VS 16.10 Pre 3 compatibility 2cc347b
  • Changed default PointerID to 1 to match UWP 0a30b82
  • Fixed a bug with tracing in ItemsRepeater where some strings were crashing the app 737ed24
  • Large file write in WASM 21fd698
  • Make WASM file picker configuration available for reference API 55927cc
  • Propagate x:DefaultBindMode to DataTemplate definitions b92b42b
  • Use stable uri for WebView_NavigateToAnchor dd4b614
  • dotnetTemplate: Fixed Window losing scope on Windows 0d5418d
  • scrollviewer: [WASM] Vertical native scrollbar could appears if the extent is smaller or as tall as the viewport dc33b68
  • selector: Don't push null selection to binding when unloading Selector ff0cd13
  • shape: prevent shapes from returning a negative desired size. 6ed4ac1
  • showlocalvisualtree: Were only available in DEBUG on MacOS. a3cada9
  • template: Remove blue background 9f2328f
  • themeresource: Update ComboBox when theme changes 6567560
  • uniformgridlayout: Fix issue with gaps in "generate back" algorighm with operating in virtual. b39e9e2
  • xbind: Don't set bindings on x:Load on the actual element bb0d65e
  • xBind: Ensure Setter is being refreshed on ElementNameSubject changes b48bf0f
  • xLoad: Ensure re-evaluation of StaticResource markup 5c45ad6
  • xUid: Ensure proper collection termination when using x:Uid 6fadcd2
  • Avoid StackOverflow for multiline TextBox, fail on remove 23946e1
  • ContentDialog now ignores button clicks and Hide() calls while handling events like in UWP. 7f20a26
  • ElevatedView should not be tab stop 5984a99
  • On Skia/WPF setting .IsReadonly to true for TextBox doesn't work. This should fix things. 883cc66
  • Remote control for winui a1ff315
  • Remove TaskCompletionSource.SetResult calls from button click handlers so deferral is handled correctly and result is not set twice. 890e912
Compare
Choose a tag to compare

Uno Platform 3.7 expands our support for the newest WinUI, Project Reunion and Linux, all while continuing performance improvements for WebAssembly head.

This release includes:

  • A new SwipeControl
  • GTK/Skia TextBox support
  • Performance improvements
  • WebAuthenticationBroker for Android
  • Project Reunion 0.5.5 updates

and many contributors updates:

  • @luke-welton fixed an issue in the WinUI template caused by invalid collection of the main window
  • @microhobby contributed fixes to pointers support in the very new support for WSLg on Windows 10, and dotnet new templates fixes.
  • @iosub contributed a fix to the native TimePicker control for Android not showing up properly
  • @trungnt2910 contributed a fix for the FileSavePicker on WebAssembly for not providing proper file extensions
  • @workgroupengineering contributed a fix for the Visual Studio extensions to enable automatic installation of core pre-requisites, which will help those of you completely new to the .NET ecosystem to set up a project.
  • @pkar70 contributed implementations for common WinRT classes

To all our contributors: Thank you!

For more details, visit our blog post.

Features

  • Support for iOS universal links 3a7253e
  • Upgrade template to Reunion 0.5.5 c57f1bd
  • animations: Add compositor thread on Android 077511b
  • authentication_broker: Added support for Android. c1d057f
  • FocusVisuals: SystemFocusVisual control 66293ac
  • fontIconSource: Add basic support of FontIconSource 67ca382
  • GTK: Support for some GTK TextBox visual properties, clear button 8f7ab5c
  • swipecontrol: Add source commit id in headers bd2371c
  • swipecontrol: Add support for simulated inertia. 2f1dbfa
  • swipecontrol: Implement minimal gestures on Skia. e460f34
  • swipecontrol: Implement SwipeItem cd6c42b
  • swipecontrol: Implement SwipeTestHooks dcdd0fc
  • swipecontrol: Implement the core of the SwipeControl 3bfc847
  • swipecontrol: Import properties files 3f6c86e
  • swipecontrol: Initial import 3908581
  • swipecontrol: Set namespaces f8d6d43
  • swipeControl: Implement SwipeItems bb90161
  • Add feature flag to configure NotImplemented log level 9a07c7b
  • WPF: Add support for visual properties on WPF TextBox, clear button 19e6680
  • Add Uno.WinUI compatibility for net5-windows c04b549
  • ChatMessage, fields for ChatMessageReader 7101c84
  • ContactQueryOptions and ContactBatch (Android) 2879bd8
  • Multiline TextBlock rendering 3c61d3c
  • vsix: Automatic installing prerequisites. 150c161
  • CookieManager b4d18a5, closes #5431
  • Geofence for all platforms 074c6a2
  • Implement HttpCookie class 3628d08
  • Support for HttpCookie class 90b0cc8

Performance Improvements

  • Add DependencyObject benchmarks deee2f3
  • Add HashTableEx specialized for internal lookups b085b63
  • add PropertyMetadataDictionary for faster GetMetadata 292522c
  • Avoid using statment in hot binding path 2d02800
  • Cache Marshal.SizeOf values 746ba84
  • Cache self style key to avoid Type.ToString invocations 3b40a9c
  • DependencyPropertyRegistry improvement ab54bd7
  • Don't create attached stores on bindable propagation ef17b62
  • don't manipulate the classes list on arranged e820c2b
  • Don't rely on reflection for Marshal.PtrToStructure 20ea231
  • FrameworkProperties for type performance 366d36e
  • Improve name to DependencyProperty lookup 4bce59b
  • Remove foreach statement in SubscribeToPropertyChanged 5f0aed5
  • Remove HashtableEx version validation and concurrency validation 777f88a
  • remove unused property lookup 8b88c0b
  • Remove use of generic delegate in Brush.AssignAndObserveBrush bb71491
  • TypeToProperties cache improvements 889dd55
  • Update DependencyPropertyCacheEntry comparer 0f723f3

Bug Fixes

  • Remote control for winui a1ff315
  • dotnetTemplate: Fixed Window losing scope on Windows 0d5418d
  • Fix NRE from x:Bind two-way through converter 101e5bf
  • No scrollbars in ScrollViewer on skia and WASM c0474c6
  • TheadPoolTimer.CreatePeriodicTimer raises events properly 33f50d4
  • FileSavePicker: Group extensions by the mime types. All file extensions now show properly on WASM target 3229b4b
  • FileSavePicker: Use generic MimeType / for WASM. FileSavePicker now does not show unwanted extensions. Fixes #5685 c31eafc, closes #5685
  • GTK: pointer events in wrong locations using Wayland a7b59c0, closes #5706
  • html_custom_event: Fixed a hard-coded exception when processing custom html events. Was visible mostly when more than one handler was registered on the same event. 3368739
  • Pointers: Ignore GTK ungrab mode for window leave notification b4bb98c
  • popup: [iOS/Droid] not responding 89ef822
  • rc: Adjust server processors path dd39a82
  • template: Remove blue background 9f2328f
  • textblock: On Wasm, the <TextBlock> were not properly displaying the ellipsis on text overflow, because the CSS requires the overflow: hidden to be applied. 160a506
  • textbox: Update on Foreground brush Color changed 96b7371
  • Add Bindable attribute on VirtualizingPanelLayout 3ee4070
  • Add ContentTemplate Binding to TextBlockButtonStyle 10162ca
  • Adjust error message for FileOpenPicker 9a35c32
  • Adjust generation for x:Bind events in x:Load context 0938736
  • Adjust incorrect generation behavior during roslyn design-time build 8f6bf1f
  • Adjust NotImplemented for file pickers f952c3e, closes #5766
  • Adjust Roslyn generators support for UnoUISourceGeneratorDebuggerBreak e91067c
  • Adjust Skia GTK target override for netcoreapp3.1 beff850
  • Contact FullName fix 75b0b87
  • Ensure Fluent style placeholders in ComboBox and TextBox update when theme changes d7837d6
  • Invalid defines for WinUI 3 template a4c3d3f
  • x:Bind typeof expression for nullable reference 9518f7d
  • Border: Adjust max radius for inner border shape 81654c1
  • listview: Fix ItemTemplateSelector not working with Fluent styles 5393841
  • templates: Make UWP head mandatory 2fee3e1
  • TimePicker: Make sure Android flyout opens 0701e4f
  • Apply ContentTemplateSelector with Fluent styles 51b8edf
  • AutoSuggestBox.QueryIcon does not work 1486945, closes #5545
  • BorderLayerRenderer accumulates shape visuals 9417b2d
  • Do not close JS stream reader if closed 4fa0db3
  • Do not throw on read stream Flush 3b67dd4, closes #5751
  • Fix native horizontal scrollbar remains visible on FF 2a4e199
  • Fix spurious DataContext propagation in ContentControl 996d574
  • FullAOT may fail for missing generated marshaller b387786
  • Handle errors from Brush callbacks for disposed views 4ad04fe
  • Improve internal debug info d2a0583
  • Project Reunion logging and Suspending event adjustments f3e30d0
  • Renew UWP samples app certificate 995a4af
  • droid: issues when navigating back 0f8a4c9
  • NativeFramePresenter: [iOS] Fix a bug where pre-populated frames would log errors when displayed. 17c04dc
  • perf: Don't materialize unneeded theme dictionaries 4ad6e86
  • textblock: [WASM]Removed a useless scrollbar appearing sometimes on TextBlock c888b36
  • themeresource: Update VisualState.Setter value when theme changes b9440c7
  • xbind: Support nested expression x:Bind events af614a0
  • VS 16.9 uap build should not run roslyn source generators c7de633
Compare
Choose a tag to compare

The wait is over! The next generation Windows developer platform – WinUI 3 – has been officially released to the public, alongside Project Reunion 0.5. To empower you to have #WinUIEverywhere on the day it launches we are also releasing Uno Platform 3.6. Our appreciation goes to Microsoft WinUI team for keeping us posted on your progress, in order for us to have day-0 support for WinUI.

In addition to WinUI and Project Reunion support, we are also releasing highly-requested DatePicker and File Picking controls (Open, Save, Folder), a new Cupertino-like theme, OpenId Connect, WebAuthenticationBroker and are continuing support Windows Community Toolkit and its newest release - 7.0! Lastly, we have restructured and added more documentation to our docs – one of the main improvements you asked for in our annual survey.

For more details, read the full release blog.

Here are some of this release features and improvements :

And many bug fixes, with some highlights:

Here's the extended changelog:

Features

  • Add ability to style DatePickerFlyoutPresenter (1f96c0b)
  • Add support for PointerWheel events on macOS (a95db8f)
  • Add support of managed SCP for coordinates computations (17ca9d9)
  • Android FileOpenPicker (2b53633)
  • Android FileSavePicker (fb772af)
  • Android FolderPicker (2db906a)
  • Android SAF StorageFolder/File operations (1eb6b53)
  • Custom dispatch pointer events on macOS (2b00bcd)
  • Enable fluent styles by default in app templates (9c78ab2)
  • Enable managed scroll in macOS SV template (b27f2a7)
  • Enabled the managed scrollviewer on macOS (a9dd550)
  • Extension to allow for FileSavePicker implementation (acaa7b6)
  • iOS FileOpenPicker (b28b8df)
  • iOS FolderPicker (21244db)
  • macOS support for FileOpenPicker (84f3bbe)
  • StorageFolder/File operations iOS (6ac3961)
  • Update ScrollViewer's templates for macOS (7471a78)
  • Update templates to use Microsoft Logging 5.0.0 (da09f10)
  • Upgrade unoapp-winui template to Reunion 0.5 (bad3b05)
  • applicationlanguages: Implemented ApplicationLanguage.PrimaryLanguageOverride (07bb5cc)
  • calendar: Ensure Calendar & DateTimeFormatter are following ApplicationLanguages state (7dd5a7e)
  • datepicker: Changed DatePicker to default on native picker on iOS & Android. (94004df)
  • datepicker: First working version of DatePicker (d50fb77)
  • datepicker: Use LoopingSelector instead of ListView for non-native DatePicker. (0a5203b)
  • dependecyproperty: Implemented this.RegisterDefaultValueProvider() (5dd3a34)
  • dispatcherqueue: DispatcherQueue implementation (e6dfb03)
  • double: Unify .IsFinite() method extension for all platforms. (29f9f2a)
  • droid: Add FeatureConfiguration flag (a8aedb8)
  • pointers: Add support for window pointer enter/exit required for complete sequence with touch pointer (4d43906)
  • pointers: Add support of touch inputs on skia GTK (cbb4be1)
  • runtimetests: Output text is now selectable (0bc7414)
  • scrollviewer: Add support of touch scrolling in managed ScrollViewer (no inertia yet) (5697db6)
  • scrollviewer: Prevent touch scrolling on forbidden axis (c906316)
  • Add CommandBar Sample Page (fdcaa98)
  • Add CommandBar SamplePage (266ebc5)
  • Add native filesystem folder picker (bdc424c)
  • Add support for .NET 5 target for Wasm/Skia (5e7bc64)
  • Add support for manual tests tagging (342b0d9)
  • Basic Launcher.OpenUriAsync support on Skia (a3dada5)
  • Change TextBlock Default FontSize (985aab9)
  • FileOpenPicker on Skia WPF (869481f)
  • FileSavePicker on Skia WPF (16a834e)
  • Launcher support on Tizen (0754994)
  • Support for Native FileSavePicker (d9e32fd)
  • Support for Storage.Pickers collections (2f717d9)
  • Update BaseStyle fontsize (4f375bb)
  • Update controls to match UWP default FontSize (cbf15ec)
  • Update Styles to match Default UWP FontSize (f77b6db)
  • Upgrade to ES2017, including ES2018 types (81ae3ca)
  • Upgrade to ES2017, including ES2018 types (194c204)
  • Upload-based file open picker (c6549f7)
  • Use managed scroll for MacOS (b1ef283)
  • showlocalvisualtree: Improved the output of ShowLocalVisualTree (ba1b7ee)
  • showlocalvisualtree: Unify the content of .ShowLocalVisualTree() (23fa7f9)
  • snappoints: Added support for Snap Points in ScrollViewer (a7158b4)
  • textbox: [MacOS] Added support for AcceptReturns (da6d689)
  • textbox: [MacOS] Removed direct usage of SolidColorBrush to get the Foreground color. (8860de6)
  • xaml: Support IsTypePresent in conditional Xaml (7bdff09)

Performance Improvements

  • Add support for benchmarks (c4a5cb4)
  • Enable property caching for ColumnDefinition and RowDefinition (31fada8)
  • Improve ResourceDictionary performance (82480ae)
  • Remove generics from TSInteropMarshaller (3e2b427)
  • Use fast property for Border Padding and BorderThickness (4a31d8d)
  • Use property caching for Border.BorderBrush (6cbada0)
  • Use for loop for children enumeration (c89fe21)

Bug Fixes

  • Android: Load html from string for Android 10 and upper (f367dc5)
  • dotnet_new: invalid template expansion removing C# conditionals (fa065ee)
  • loopingselector: Fix a glitch in LoopingSelector related to way ScrollViewer events are raised. (a0486d9)
  • [macOS] ignore evnts out of the window's bounds so native buttons (close/maximize) works (7a2589d)
  • Add missing compilation flag (f961754)
  • Adjust nuspec dependencies for Uno.Core (be9d0e8)
  • Avoid flicker in SV when an hidden element is taller than viewport (b5da4ee)
  • Defer NavViewItem pressed and over states only for Android (816d071)
  • Do not materialize ElementStub if no parent (5fca6db)
  • DualScreen, Maps invalid Uno.WinUI dependency (367f234)
  • Fix build for skia (2fe27c1)
  • Fix build macOS (9bb4baf)
  • Fix build on Android and iOS (2174a4f)
  • Fix build on CI (43e0419)
  • Flaky roslyn source generator dependency compilation (17bb8a9)
  • Remove workaround which is no longer valid (34d6f24)
  • BorderLayerRenderer: [iOS/Skia] Adjust corner radius when drawing inner path of border to account of stroke thickness offset (f5bdc41)
  • datepicker: Continuation must be on UI Thread (52b3ac7)
  • datepicker: fix generated of months and days. (3f622bc)
  • DatePicker: Set default date to Today's Date (35b5649)
  • DepdendencyObject: Don't use IEnmerable when propagating the DataContext (df5a695)
  • dotnetnew: -wasm=false exclude UnoQuickStart.Wasm (3414bef)
  • flyoutbase: Fixed a potential NullRef Exception on .Open() (94013b0)
  • Hyperlink: Use SystemControlHyperlinkTextBrush for Wasm Hyperlink (6bed89f)
  • ImageBrush: [iOS/Android] subscribe to ImageBrush property changes (8901310)
  • iOS: CommandBar.TitleView overlapping AppBarButton (794d076)
  • loopingselector: A useless exception were raised when ItemHeight were not the first property assigned. (c66e87f)
  • loopingselector: Changed the way the fix was done to prevent automatic re-selection for a better approach (addressing the real cause: the synchronous ViewChanged from the ScrollViewer) (4cae68a)
  • Path: [Android] fix certain paths being skewed (7a805b9)
  • reg: Adjust samples app Xamarin.AndroidX.RecyclerView version (bb90863)
  • Invalid vtable setup for latest android builds (eebcd48)
  • macOS: Null pointer opening popup (b1a1c13)
  • Fix NotImplemented statuses on WASM and Skia (4f2f4dd)
  • Fix rebase conflicts (4c2d993)
  • Fixed a regression with ScrollViewer on iOS were ScrollViewer were leaking because of a useless event subscription for Snap Points. (4924237)
  • NavigationView Fluent template differs (e465e41), closes #5430
  • macOS: minimize window button (3846938)
  • pointers: Fix pointers routed events always reporting mouse device (e2267c5)
  • scrollviewer: Make to properly propagate to the SCP the can scroll (e361d39)
  • Fix compilation on macOS (d59a342)
  • Make sure to not include manual test in screenshots compare tool (628bba4)
  • Minor multi-targetting fixes (6793112)
  • animation: Animations are chopped when BeginTime set (33ac094)
  • borderbrush: [Android] [WASM] Fix BorderBrush.Color not updating (ef15f08)
  • calendar: Fixed PM mode when time is after noon. (c456f32)
  • datepicker: DatePickerValueChanged old vs new were inversed. (06ad14b)
  • datepicker: DatePickerValueChanged were raised twice (45c6c58)
  • datepicker: Fixed NRE due to not initialized member variables on Skia. (2bc77af)
  • datepicker: Make sure DatePicker field ordering is correct (91408f4)
  • datetimeformatter: Allow format template with braces in constructor. (086addb)
  • fluent: Exclude SplitView fluent style to fallback on UWP's version (546ca1e)
  • flyout: Fix flyout doesn't fall back to preferred position (9f7c31e)
  • flyoutbase: Workaround for Android delayed "Loaded" event (e2a659b)
  • FrameworkElement: [macOS] Ensure we set parent to a DependencyObject (81bb0b3)
  • gridview: [macOS] Ensure GridView shows items (f14ecfa)
  • ImageBrush: [Skia] Apply ImageBrush.Transform (573105b)
  • ImageBrush: [WASM] Fix stretch and alignment for ImageBrush as Shape Fill (38b6205)
  • iOS: CommandBar NativePresenter overlapping titles (f2013e8)
  • iOS: CommandBar.Title overlapping AppBarButtons (0293230)
  • iOS: Date and TimePicker for older versions (da4729b)
  • iOS: DatePicker Flyout actions (1668f02)
  • iOS: Nullreference exception while casting (4b54098)
  • iOS: TitleView LayoutSlotWithMarginsAndAlignments (d0f4c3d)
  • loopingselector: Fixed a weird "automatic reselection" on iOS & Android, caused by event sequencing. (36a9c0c)
  • loopingselector: Fixed bug when list is changed, it wasn't updated in LoopingSelector because it was the same instance (and property changed not raised by DependencyProperty) (d1eeaa7)
  • macOS: Textbox Focus (b7d3def)
  • nativedatepicker: Fixed native datepicker flyout after rebase (99e3663)
  • passwordbox: Added support for autogrow on on MacOS (e30088b)
  • perf: [ArrayPool] Remove useless abstract method (02b1ad0)
  • perf: Defer the pointer's visual states of NavigationViewItem (596f167)
  • perf: Do not box CornerRadius for equality check (8a0ea79)
  • perf: Improve ItemsRepeater perf by avoiding useless InvalidateMeasure and viewport computation & propagation (33197e1)
  • perf: Improve performance of Grid layouting by caching temporary array (107f722)
  • perf: Prevent ItemsRepeater to invalidate visual tree too often while scrolling (f331879)
  • perf: Refactor BindingPath parsing to be allocation less (fd67fc9)
  • scrollviewer: Fixed the behavior of the ScrollViewer & ScrollContentPresenter to be closer to UWP/WinUI (079d78d)
  • selector: Fixed a potential out of range exeption in Selector (3989f3e)
  • textbox: Fixed autogrow of on MacOS (5cac02e)
  • textbox: Multilines textbox on Wasm were not properly measured. (50b559d)
  • WriteableBitmap: [Skia] Fix invalid pixel format (32c83ef)
  • xamlreader: XamlSchemaContext leaks when hooking on AppDomain.AssemblyLoad (a188586)
  • [Perf] Use ArrayPool for _resCache (98a2b31)
  • Adjust the Uno.Core version for UWP template (eef5864)
  • Applied PR suggestions (68643a4), closes #3916 #4447
  • Avoid logger reuse in resource generation tasks (9d401e4)
  • Bump UWP min version to 10.0.18362.0 (5a42135)
  • Check IsEnabled before triggering routed events (58b29cd)
  • Disable anoying log for pointer capture not supported on GTK and Tizen (e105e9b)
  • Do not prevent dispatch of events on control that are disabled (e1a57e0)
  • Enable autoflush for FileIO.WriteText (2d6525a)
  • Limit disabled SelectorItem pointer states (2ca6867)
  • Possible invalid memory copy when using SkiaCompositionSurface (c0ed22d)
  • perf: Use generated DP for CornerRadius to avoid massive boxing in layouting (9137189)
  • reg: Avoid common namespace name conflict (e9acc20)
  • reg: Fallback on reflection for loggers cleanup (685b142)
  • scrollcontentpresenter: Fixed a regression with recent chagnes to ScrollContentPresenter where the Extent on Wasm was unable to shrink (2cc8cad)
  • scrollviewer: Fix calculation of Extent on ScrollViewer (97a5e2d)
  • stroke: [Android] [WASM] Fix Stroke.Color not updating (d92e8be)
  • vsix: Correct message when Uno Remote Control service has invalid (cc19803)
  • vsix: RemoteControl.VS throw exception during VS closing. (3e27b6b)
  • vsix: System.NotImplementedException when in solution there is unloaded project. (2ad8405)
  • wasm: Pivot content when using bindings (6b34512)
  • WriteableBitmap: [Skia] Fix Invalidate not working (546b431)
  • ElevatedView does not show up on Skia (65d001e)
  • Fix changes to IsEnabled reflected witha delay (ccaeb18)
  • Improve performance of pointers on macOS (de18786)
  • NullReferenceException opt-out telemetry (28207c2)
  • Remove the use of Uno.Core in Resource generation tasks (11bacf3)
  • textbox: [MacOS] Allow to appear on multi-lines when not focused. (8af85fd)
  • wasm: Fix initialization issue in PlatformHelper for netstandard2.0 (55cddba)
  • WebView: Raise NavigationStarting and NavigationCompleted when doing anchor navigation on iOS. (f569465)
  • Initializing implementation (984076a)
  • Removed unneeded items from project file (22b19e7)
  • Update src/Uno.UI/ts/Guid.ts (b26efef)

BREAKING CHANGES

  • fix(droid)!: CommandBar.Foreground affecting NavigationCommand icon (51795d2)

This will change the default behaviour on how the Foreground property of the CommandBar is handled and applied against the different elements of the CommandBar

331aaa6
Compare
Choose a tag to compare

Staying true to our #WinUIEverywhere mission, our 3.5 release provides day-zero support for WinUI 3 Preview 4 and it brings support for 4 new WinUI controls – Navigation View, Progress Ring, Pager and Expander. In addition, we are solidifying our existing support for SkiaSharp and Xamarin.Forms 5.

Read our blog post for more details about this release.

Features

  • Automation: Implement properties used by PagerControl eed4842
  • ContactPicker: Pick multiple contacts e9c120a
  • ContactPicker: Pick single contact on Android be03a46
  • ContactPicker: Pick single contact on Tizen 2e32116
  • ContactPicker: Pick single contact on WASM 9f0679e
  • ProgressRing: Add DeterminateSource/IndeterminateSource to MUXC ProgressRing 302fd4b
  • TextBox: Add keyboard command capability to macOS TextBox 1effa70
  • TransformToVisual: Add TransformToVisual logic for macOS 0ab5d6f
  • xLoad: Add xLoad binding capabilities e2868b0
  • Add Sample for CommandBar Custom BackButton 48bff73
  • Add support for Determinate ProgressRing eaa4e51
  • Add support for x:Bind type cast syntax c45407f
  • Add unoapp-uitest template for Uno.UITest based testing 0a67156
  • Add VectorExtensions bfdd3df
  • Add VectorExtensions API documentation 17af317
  • DataTransferManager support on Android 4c2e6dd
  • DataTransferManager support on iOS bfe6ec9
  • DataTransferManager support on macOS 09b4ad0
  • DataTransferManager support on Tizen 41d8fc0
  • Enable WebView on macOS dc0363c
  • Implement Vector Extensions d2b455f
  • Support for CompositionPropertySet 8250339
  • Support for DataPackagePropertySet 91fee77
  • Support for DataPackagePropertySetView 8d2dabf
  • Support for DataTransferManager on WASM 97ccc3f
  • Support for UIElement.ActualSize a6b9cbe
  • Support PropertyValue API 13fdf50
  • Update extension namespace 51e3261
  • update resource name b9874a0
  • WinUI PagerControl 76cdc72
  • Binding: PropertyChanged update with null 1dcca11
  • Border: Allow variable BorderThickness while using CornerRadius 54f82cc
  • droid: Added validation for NODPI Assets 67e3a99
  • Expander: Add WinUI test page 1279af8
  • Expander: Port Expander from WinUI 0e5632b
  • iOS: Set latest (iOS14+) Style default for TimePicker ae78b77
  • skia: Enable StorageFile.GetFileFromApplicationUri f910b24
  • Slider: Add Header support 6fbc207

Bug Fixes

  • Update UnitTest c0530da
  • UWP buildable and deployable under Any CPU 3a9a3b7
  • templates: Updated Microsoft.NETCore.UniversalWindowsPlatform to 6.2.11 7084575
  • skia: Use PackageInstalledLocation for the path c801466
  • iOS: Add CommandBar Sample 66e661b
  • iOS: Add CommandBar UITest 1f0ea0c
  • Update Sample Page f0b3e80
  • Update src/SamplesApp/SamplesApp.Droid/SamplesApp.Droid.csproj b434c2a
  • Update src/SamplesApp/SamplesApp.Droid/SamplesApp.Droid.csproj a0d4742
  • Update src/SamplesApp/SamplesApp.Droid/SamplesApp.Droid.csproj bebb51c
  • Update UITest to set the Style only during its execution 3a4f524
  • Update CommandBar UITests 41ff3fe
  • viewbox: .Arrange() on a viewbox will now reuse the Scale transform instead of creating a new one each time. 25153ba
  • Bump UWP min version to 10.0.18362.0 b481b23
  • ElevatedView does not show up on Skia 93ae29c
  • Properly fallback on Skia AcrylicBrush 7451979
  • android_textalign: Fix text alignment problem on Android. 8ceed71
  • Animations: Fix issue with multiple animators holding the same handle to their JS counterparts ee4efaa
  • BindableNSView: Set MasksToBounds to false on init 697ee67
  • Bindings: Avoid propagating DataContext if you are not the child's parent f95d051
  • Border: [Skia] Ensure only the outer border shape is inserted as the first child 0d95444
  • ci: Skia GTK/WPF/Tizen templates weren't tested in Release cb52022
  • combobox: [WASM] Reduce number of items created by ComboBox 1b23964
  • FrameworkElement: [macOS] Ensure we set parent to a DependencyObject 81bb0b3
  • imagesource: Fix the SetSource[Async] must clone the provided stream before returning 4b9a6ec
  • iOS: CommandBar Back Button Icon 5dcae11
  • itemsreapeter: Workaround only first item rendered if no ScrollViewer bd3265a
  • itemsrepeater: Fix only first item appears on Android 8534de5
  • linux: Package base path resolution for single-file .NET 5 packaging 9e62bc3
  • memory: [iOS] Propagate GPU animation failures up to Storyboard to fix memory leak 9a8eb39
  • msix: Adjust project creation ordering fec66d2
  • navview: Fix footer items not appearing f029e37
  • PersonPicture: Use SymbolThemeFontFamily instead of Segoe MDL2 Assets e0688e3
  • reg: Avoid common namespace name conflict e9acc20
  • Fix bounce ease producing invalid final value 6d840ab
  • Hyperlink: Add hyperlink foreground color for macOS 94a1e26
  • macos_scrollviewer: Margin directly on the child element of a scrollviewer were ignored. 4baad67
  • popup: [iOS] Nested popup results in NRE 004abee
  • popup: placement issue for android 531456e
  • rect: Allow the usage of spaces for components of a Rect (used in a ) bf1fb69
  • scrollviewer: [iOS] Ensure ScrollViewer.ViewportWidth is updated correctly 9bcd9d8
  • scrollviewer: Add ShouldFallBackToNativeScrollBars flag 6964f22
  • scrollviewer: Fix ScrollViewer.ViewportWidth calculation e87a198
  • scrollviewer: Show ScrollBar when Fluent styles are used 726923a
  • tabview: Fix content of first tab not rendered on iOS 6127a5d
  • tabview: Fix ScrollViewer-related issues fe8b659
  • TabView: ItemFromContainer should be public 09b302b
  • uielement: [iOS] Fix TransformToVisual output inside ScrollViewer ade31cb
  • vsix: Adjust UWP asset casing fb90c7c
  • wasm: fix non-uno.ui type HtmlElementAttribute inheritance 2518b14
  • Add missing UI Testing property in source generation 8f69eb4
  • ContainerFromIndex and IndexFromContainer return wrong results b3b27b7
  • Do not allow reentrancy on UpdateLayout even with native layouting 7f11604
  • Ensure protocol activation is handled 5ab623d, closes #5076
  • Error CS0105 The using directive for 'Windows.UI.Xaml.Controls' appeared previously in this namespace Uno.UI (xamarinmac20) 0928d9c
  • Fix build 6493ec6
  • Fix possible non disposed tracing. 2bd607b
  • Fix UpdateLayout measuring to 0x0 if called too early 2b95148
  • Invalid value 270bf34
  • Make sure parent's shadow children collection is up-to-date in child.Loaded 218f660
  • Match ProtocolActivated property support with Launch b87dc94
  • Native-registered DPs lazy initialization 6e4de7d
  • Prevent reentrancy of UpdateLayout with native layouting on xamarin a3fd5d3
  • Set IsVisualTreeRoot flag on all platforms ce2641d
  • Shapes: Match UWP StrokeThickness behaviour 63da357
  • viewbox: Fixed viewbox layout & clipping with the right solution after PR review. 9de4e14
  • viewbox: The coordinate system used for arranging elements were not the right now. It was before the application of render transforms. 071f1aa
  • Control Template might never be applied 0320068
  • Revert "Keep track of current view type even if content is set to null" 882662a
  • Show NumberBox header 0833e13
  • animations: [iOS] Cancel animators on detached layers 7f6b7c2
  • Binding: x:Bind to fields not applied 875a722
  • Border: Ensure Border content is clipped by CornerRadius 8e90750
  • Calendar: Fix Calendar.YearAsString() and Calendar.YearAsTruncatedString() 4a31447
  • DependencyObject: Fix invalid cast in generated DependencyProperty coerce d6de227
  • dotnetnew: Add dotnet-new classification to dotnet new templates 23f8ebb
  • droid: Resource converter from UWP b352ab6
  • iOS: CommandBar back button title 5e9cf9f
  • iOS: Timepicker flyout 6223238
  • listview: [WASM [Skia] Trim excess scroll when item at end of list is removed 3587774
  • macos: ManipulationDelta translateY being inverted 03d13f5
  • NavigationView: Content top padding is not correct 444aa14, closes #4793 #4826
  • passwordbox: Don't fail on setting null on PasswordBox.Password 080cf81
  • personpicture: Fix invalid image positioning after ImageBrush fixes e9de176
  • Polygon: Close Polygon shape on Android 056d8a9
  • popup: placement issue for wasm/skia 6bc5b92
  • reg: Adjust RuntimeTest for leaks validation condition for iOS f591e5d
  • remotecontrol: Fix iOS/Android projects not selected for RemoteControl generator e84b047
  • resourcedictionary: Fix ResourceDictionary.Source resolution when globbed includes are defined in an included file b1d4741
  • ResourceDictionary: Default theme may not be valid on first call 47b6aed
  • scrollviewer: [WASM] Fix reloaded ScrollViewer has scroll reset 387038a
  • tabview: Fix TabView add button not appearing when there are many tabs f176465
  • textblock: On Wasm, the Padding were not part of the key used for the measurement caching. 32b27b1
  • Added missing Properties folder and AssemblyInfo.cs file to macOS template f98546f
  • Adjust When_Scrolled_To_End_And_Last_Item_Removed test assert 8879083
  • Avoid generating duplicate TabViewItems 9c35539, closes #4899 #4907 #4925
  • ElementName binding in non-toplevel ResourceDictionary 086a99c
  • fixed race condition 86dccb2
  • Indicate selected item in NavigationView f17770d, closes #4794
  • IsMethodPresent not using NotImplemented 881bb0b
  • Make NavigationView Settings item selectable 69318b4, closes #4809 #4689
  • memory leak in telemetry 619fe29
  • Remove explicit type in Solution template App.xaml.cs 26170c3
  • Return correct result of ApiInformation.IsPropertyPresent 0e5c530
  • TabView does not render item content with bindings 20b4af1, closes #4894
  • TargetPropertyPath is not releasing its WeakReference properly 35d6a93
  • tabview: Fix all tabs squeezed into view when last tab is closed 0d8f915
  • tabview: Fix TabViewItem min width not applied when XamlControlResources is merged 91c41a4
  • templates: Bump Uno.Core to 2.1 in UWP template 62fb9a1
  • textblock_alignment: Fixed a problem with TextBlock alignment on Wasm when "MaxLines" were used. 55cc99b
  • TextBox: [iOS] Remove the top margin of the MultilineTextBox 73f8257
  • TimePicker: Make Sure ClockIdentifier is set on iOS 8ae94ba
  • Remove .Shared from root namespace b2a2906
  • TimePicker: Make sure iOS flyout opens fc7fd35
  • winui: Fix the WinUI desktop app template b71aa14
  • xaml: Fix ThemeResource binding in style template doesn't update b3f2078
Compare
Choose a tag to compare

3.4

This 3.4 release is about adding support for WinUI controls, such as the hierarchical Navigatio