uno

Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.

APACHE-2.0 License

Stars
8.3K
Committers
299

Bot releases are hidden (Show)

uno - 5.1.31 Latest Release

Published by jeromelaban 9 months ago

It has been nearly 3 months since we launched Uno Platform 5.0. Since then, .NET RTM’d and even shipped a servicing release. Naturally, we embedded all that goodness in our 5.1 release, as well as added number one feature you requested – Our Live Wizard for Rider and VS Code users.

The same time-saving utility is now available via our Live version to JetBrain’s Rider and VS Code users so you can get your projects set up quickly. We also added three new controls, and improved performance.

Visit our blog post to learn more about Uno Platform 5.1!

A few more detailed highlights on this release :

  • Font Fallback support on Skia
  • TimePicker support
  • New MsBuild Uno.Sdk
  • Support for ComboBox.IsTextSearchEnabled
  • Support for StandardUICommand
  • TexBlock support for IsTextTrimmed and IsTextTrimmedChanged
  • Performance
    • Memory leaks improvements (NavigationView, RatingControl)
    • Animations performance improvements
    • Memory allocation and Boxing reductions in DependencyObject
    • StatusBar performance for Android
    • TexBlock rendering performance
  • Various alignments in layout engine from WinUI

And of course, many thanks to our contributors:

  • Documentation updates by @EvarDion, @davkean
  • TreeView.DragCompleted support by @TopProgrammer77
  • TextWrapping update on Safari by @TopProgrammer77
  • Android Resource generation stability improvements by @dellis1972
  • Uno Solution updates by @limeniye

See below for the full changelog:

Features

  • Add ability to enable hot-reload in release (for automated testing purposes only) (11deccb)
  • Add add PhoneResource.h to WinUI resource extractor (d90d888)
  • Add basic support for TextBox.Paste and PasswordBox.Paste (456799e)
  • Add font fallback support on Skia (03397f2)
  • Add internal support for InputKeyboardSource on Uwp (187a1cb)
  • Add LinearArrayPool (87419e7)
  • Add net7 backward compatibility for msbuild getProperty (2f025e5)
  • Add new WinUI resources (96ee37e)
  • Add support for devserver IDE channel (dcecc26)
  • Add support for quicky opening searched item in SamplesApp (5b7cf3b)
  • Add TimePicker Fluent V2 styles (4dab50e)
  • Add tool to generate WinUI localized resources (aba02b0)
  • Add UIView.Dispose detection analyzer (4df839e)
  • Adding counter tutorial (673b597)
  • adding Cross Targeting globbing (3caea39)
  • Adding reloadcompleted callback (4168502)
  • adding SDK (f7c569c)
  • Adding workshops to docs (66cf878)
  • Controlling ui updates on hot reload resume (159cce7)
  • Implement GetConnectionProfiles (06a73c6)
  • Implement Automation Identifier Properties (085bc2f)
  • Implement Automation Identifier Properties (069d2e1)
  • Implement Automation Peers enums (2a1d22a)
  • Implement Automation Provider (89b5ab5)
  • Implement ComboBox.IsTextSearchEnabled (47df509)
  • Implement SCP.SizesContentToTemplatedParent (936fb48)
  • include winappsdk-workaround for non-Single Project (887a9a0)
  • InstanceTracker for FrameworkTemplatePool (0d67bd7)
  • LoopingSelectorHelper (f8312e7)
  • Port ImageAutomationPeer (3c8e536)
  • Port LayoutRound code from WinUI (95fba8f)
  • RepeatButtonAutomationPeer (bb1b1ea)
  • StandardUICommand (ba9c078)
  • Support CompositionStretch and [Horizontal|Vertical]AlignmentRatio and use that for ImageBrush (b0854ef)
  • Support for TextBox.Paste and PasswordBox.Paste on Android (aab94da)
  • Support for TextBox.Paste and PasswordBox.Paste on GTK (e58e5bc)
  • Support for TextBox.Paste and PasswordBox.Paste on iOS (d174ff9)
  • Support for TextBox.Paste and PasswordBox.Paste on WASM (3c3759a)
  • Support for TextBox.Paste and PasswordBox.Paste on WPF (a98212b)
  • Turn Sample info dialog into a flyout (4f90261)
  • UnitTestsControl should handle default parameter values (aab2154)
  • Update InfoBadge to winui3/release/1.4.2 (95292c5)
  • update menu style (06752bf)
  • Use newly added resources (082bfaf)
  • WinUI TimePicker (2810779)
  • textblock: IsTextTrimmed & IsTextTrimmedChanged (e1523f8)
  • textbox: add support for text selection (2324b9e)
  • Update DispatcherHelper to winui3/release/1.4.2 (99e91bd)
  • Update InfoBar to winui3/release/1.4.2 (a075182)
  • Update TreeView to winui3/release/1.4.2 (f668510)
  • Update TwoPaneView to winui3/release/1.4.2 (f01ebe1)
  • Use StandardUICommand for TextBox context menu (2c2b37f)
  • textbox: start skia-based TextBox implementation (bc7d426)

Performance Improvements

  • Fix NavigationView memory leak (c1591c1)
  • Fix RatingControlPage memory leak (fbc6bea)
  • only invalidate InlineCollection layout when properties change (190a824)
  • samplesapp: Fix RadioButtonsPage memory leak (7620f0a)
  • samplesapp: Fix SamplesApp leaks (b2b0a5a)
  • Access Color DP once in InlineCollection.Draw (6162874)
  • Animations-focused misc optimizations (b3c3a91)
  • Avoid iterators when updating resource bindings (3de964b)
  • Eliminate boxing of FrameworkPropertyMetadataOptions (6e03929)
  • Eliminate enumerator boxing in ResourceBindingCollection.HasBindings (89d2c08)
  • Eliminate SKPositionedRunBuffer allocations completely (77168dc)
  • Eliminate unnecessary array allocations for GlyphInfo and GlyphPosition (8024507)
  • Extract static arrays (1923b87)
  • Re-use Metadata calculated for getting property inheritance info in DP details (380b30b)
  • Reduce memory allocations from FindName (4e6f5df)
  • Use Array.Clear(arr) instead of Array.Clear(arr, 0, arr.Length) (991aed2)
  • Use ArrayPool for very temporarily arrays in InlineCollection.Draw (f900f25)
  • memory: Use LinearArrayPool for DependencyPropertyDetails (ab0b3de)
  • memory: Use LinearArrayPool for DependencyPropertyDetailsCollection (11daf41)
  • memory: Use sparse arrays for DependencyPropertyDetailsCollection (5c7b3c1)
  • SamplesApp: Avoid unnecessary expensive GC.Collect (8fa5168)
  • StatusBar: Cache height resource id (b516411)
  • StatusBar: Use cached density on Android (14ceba9)
  • xamlgen: Reduce allocations in RewriteNamespaces (186f954)
  • Misc perf improvements (f51f229)
  • Optimize GetCurrentHighestValuePrecedence to not force create property details (82203be)
  • Use a single static SKTextBlobBuilder for inlines rendering (69fc349)
  • Use cached Metadata when getting DP default value and reduce Flags size (efbe97a)

Bug Fixes

  • Avoid breaking changes (e18d733)
  • Call NameScope.RegisterName only for x:Name (429a016)
  • Consider Canvas.Left/Top as independent animation (df000af)
  • Disable template pooling on Android (852b286)
  • Fix IR not reflecting CollectionChanged.Update raised while being unloaded (2723df5)
  • textblock: render tabs realistically (293cd7c)
  • textbox: fix selection when Paste doesn't change the text (a1bb138)
  • textbox: raise paste on PasteFromClipboard (74b4929)
  • [wasm] Don't fail on uninitialized GC handle (6546ec3)
  • droid: match Geolocator method with WinUI API (bda71a4)
  • Fix measuring MPE (67e21c1)
  • RatingControl events re-attachment (991b710)
  • droid: Geolocator listener crash (af652ec)
  • Adjust cultures to be compatible with .NET's ICU list (61e5886)
  • droid: FileOpenPicker.SuggestedStartLocation (e23b12e)
  • droid: flipview Native View clipping (3d63911)
  • Adjust arrangeSize for non-Stretch alignments (c7a4b93)
  • Adjust default values types for EntranceThemeTransition DPs (0cade60)
  • Align Hour and Period property in Calendar with WinUI behavior (32da347)
  • Align UIView test with actual UIView inheritance (4bfdbda)
  • AutoSuggestBox is not styled correctly on hover (f7b332f)
  • avoid calling Native getter in NativeCommandBarPresenter (e9c011d)
  • avoid creating disconnected native commandbars on load (2f532af)
  • Avoid propagating FindName to Content if ContentTemplate is used (09e3a0f)
  • Behavior of Period property in Calendar (fe1332b)
  • Call Dispose instead of Destroy on _videoWindow (72d83d6)
  • Correcting links (9452fed)
  • Do not explicitly reset DatePickerFlyout style unless requested (e846510)
  • Do not try to call Focus(Unfocused) (3fdfd1b)
  • Ensure LoadCompleted is fired on UI thread (70cd310)
  • ensure that not implemented events raise Uno0001 (25b9c71)
  • Ensure ToggleMenuFlyoutItem is reported as Toggle (df039bf)
  • Ensure WPF doesn't override our own synchronization context when calling pointer events (76864a6)
  • Fix ItemsRepeater might not listening on collection changed when re-loaded (49fed2b)
  • Fix MPE race conditions (6a0720c)
  • Fix NaturalVideoDimensionChanged event subscription (3e640f2)
  • Fix NavigationView memory leak (a9182c9)
  • Fix type resolution from x xmlns namespace (2732b61)
  • Improve legibility of DatePicker and TimePicker selection highlight (9876653)
  • links to xref (b295108)
  • Looping selector should size panel only when scroll viewer is initialized (dae0709)
  • mention starting version (5393b17)
  • Only set children parents to null on UIElement cleanup (28edf67)
  • pointer coordinates shift on WSL (10026e7)
  • Port GetMinMax from WinUI (1d8bbb1)
  • Re-add VectorExtensions (3063947)
  • Remove missing guidance on WSL (bcd52f2)
  • SamplesApp fail when FilteredSamples null (7079c3f)
  • scrollviewer grabbing focus on pointer up (9c58ee5)
  • Setting hours on Calendar does not work correctly (7ac83d3)
  • split a few more kits (6e927b0)
  • WinUI ProgressRing not showing (f099d29)
  • Workaround the TimePicker and DatePicker popups showing up in incorrect position briefly (e2b64b3)
  • Android: add start/stop orientation sensor (36b1680)
  • bitmapicon: fix BitmapIcon respecting ForegroundProperty on skia (440a083)
  • ComboBox: selection state not being updated (54b084d)
  • commandbar: Avoid NSObject_Disposer:Drain with custom AppBar content (d48ddf3)
  • droid: flyout having no size in certain case (8a51870)
  • FrameworkTemplatePool: Detach native view from parent when recycling (b0c96b3)
  • hr: Avoid ENC0011 when modifying a const field during HR (c03697a)
  • hr: Ensure that the msbuild version used is properly aligned (2312c2e)
  • hr: Prevent double reload on skia/wasm supporting targets (b88feeb)
  • hr: restrict XamlReader to mobile targets only (a63fcb3)
  • HR: Include path to C# files to ensure partial HR picks up CSM changes (3b87c73)
  • iOS: CameraCaptureUI cancel action (f797de2)
  • listview: fix keyboard scrolling causing the listview to scroll instead of changing the selected item (f567837)
  • listview: header losing datacontext on ios between frame navigation (868c3ad)
  • pipspager: fix pipspager to show pips correctly when MaxVisiblePips < NumberOfPages (949fe49)
  • pipspager: fix vertical pipspager when number of pips is more than max visible pips (1114856)
  • radiobuttons: Finalizer shouldn't access a DP (a4b2275)
  • scrollviewer: fix scrollbars freezing on WASM when a pointer wheel is violently scrolled (565cf49)
  • scrollviewer: fix WASM keyboard scrolling glitching specially when during long overscrolling (b421c39)
  • selector: keep SelectedItem pending if set before ItemsSource (a26e8b0)
  • textbox: fix textbox losing focus on WASM if alt-tabbed out then back in (328c52e)
  • xamlgen: MarkupExtensions parser context (0f3b7e9)
  • navbar scrollable (dd2c019)
  • rewording (0df1509)
  • typo (f026663)
  • TreeView: raise DragItemsCompleted when dragging items is completed (67b5274)
  • Provide the ability to break on invalid calls to NSObjectExtensions.ValidateDispose (1359637)
  • Set top level class name for ResourceDictionary with code-behind (b15f487)
  • Use InvariantCulture for int.TryParse calls (e13d08d)
  • Workaround MPE tests with MTC not enabled (ff3b546)
  • xamlreader: Take xmlns into account when resolvnig setter properties (f8a273f)
  • xbind: Fix x:Bind not working properly for private properties (425aedd)
  • add implementation unsupported targets (ef05492)
  • Add missing CompilerVisibleProperty for UnoForceHotReloadCodeGen (85f71e8)
  • Add missing Non-UI docs to toc.yml (4e996c3)
  • Adjust HR documentation and error message for uno 5 upgrade (4ebdea8)
  • Adjust mobile hotreload (589da55)
  • Adjust msbuild tasks and nuget package for actual SHA commit (f17d3cd)
  • Adjust TextBox ScrollViewer workaround for Material TextBox to wrap properly (954b367)
  • Adjust Window.Closed on WinAppSDK and remove invalid constructors of CoreWindow (3bc5843)
  • Adjustments to Android FileSavePicker behavior (78e952c)
  • Correct UNO_REFERENCE_API condition (6bc11f3)
  • Correcting handling of datacontext due to inheritance (6609f9b)
  • Empty TextBlock should have non-zero height (0dcf4c1)
  • Ensure the Uno WindowHost is always focused to capture keyboard events (db6f700)
  • Fix AppResources hot reload stop working after 10 updates (ffc1f66)
  • Fix formatting (f5a6fa0)
  • Fix formatting (c6b051d)
  • Fix hot-relaod of nested resource dictionnaries (16b2fff)
  • Misc fixes for hot-reload testing (1a20f3d)
  • Properly replace target framework for net8.0 reference (0c57c74)
  • Provide the ability to troubleshoot Roslyn's hotreload (31054ae)
  • Remove infinitely looping BufferingProgressBar animation from MTC template (44c4e3f)
  • Restore XamlReader HR for mobile targets (f0ec731)
  • Take non-top-level xmlns into account when resolving System.Type properties (b003710)
  • Workaround FlipView issue on Wasm when jumping >= 2 indices (e10c247)
  • hr: Fix RegisterAttribute generation for nested/generic types (2a17b6c)
  • hr: Use SDK version to run the dev server (e4326f1)
  • iOS: add start/stop MotionManager events (8bf4e78)
  • Avoid possible exception in hot-reload (e816bf5)
  • Ensure fractional DPI is avoided in HW GTK renderer (edcf4e5)
  • gtk pointer event coordinates (9b58473)
  • gtk: Fix software rendering after scaling adjustments (72c0677)
  • xamlgen: Use XamlBindingHelper.ConvertValue for markup extensions (025396c)
  • Alter Android ResourcesGenerationTask to use LibraryResourceDirectories (f397d80), closes #10686
  • Force the dotnet version to use by teh dev-server (4f73003)
  • Formatting on PersonPictureTemplateSettings (ca52a6b)
  • Repeated navigations in Frame (2c0c26f)
  • Setting dispatcherqueue from current window (f797a4d)
  • Use most recent available uno-runtime from packages (2997c3b)
  • XamlReader does not recognize Windows.UI.Xaml.Input namespace (c98cd61)
  • android: Fix KeyDown not firing for Enter key (6f803ed)
  • autosuggestbox: fix keyboard navigation (ca7397f)
  • combobox: tab should close the Popup if open and focus the next element in tab order instead of Popup (1b45625)
  • documentation: summary tag are now default to display as list item (8c3f1f6)
  • hr: Don't propagate RuntimeIdentifier so libraries can build using their natural targets (b5cc967)
  • hr: Use type mapping for x:Bind inner bindings class (8b44f26)
  • lottie: Use a net8 compatible property for lottie/skiasharp detection (088ac8e)
  • mediaplayerelement: fix MPE position when scrolling (b61ce53)
  • scrollviewer: a ScrollViewer should not scroll an outer ScrollViewer (806e7fe)
  • scrollviewer: keyboard scrolling with arrow keys (d92fefb)
  • ScheduleActionAfterWait should not use DispatcherHelper (702f9b5)
  • Stopping Storyboard scheduled for completion (f7afcd1)
  • scrollviewer: make scrolling cancelable when Handled = true on WASM (1c45a25)
  • wasm: Prevent browser from stealing pointer events for None ManipulationModes (e075844)
  • wasm: ProgressRing doesnt stop upon exiting indeterminate state (e0f2a3f)
  • Add missing mergedstyles change (fead950)
  • Making classes accessible to windows via uno.ui.toolkit (50607d7)
  • systemfocusvisual: consider clipping (6301f6c)
  • xamlgen: Set attached property setter when its type is ResourceDictionary (9dfe6b5)
  • TextWrapping of TextBlock doesn't work properly on Safari 17 (2dc1f82)
uno - 5.0.19

Published by jeromelaban 12 months ago

Today’s release is a significant step towards creating the most productive platform for building single codebase .NET applications that run on mobile, desktop and web.

Uno Platform 5.0 brings: C# Markup out of the box, Figma to C# markup export tool, new and improved Hot Reload, improved MVUX, and two new sample apps (TubePlayer, Simple Calc)!

For more details checkout our 5.0 announcement blog post!

To upgrade to Uno Platform 5.0, make sure to read our upgrade notes.

On the more specific list of Uno.UI features and big fixes:

  • Xamarin and .NET 6.0 are removed
  • .NET 8 is added
  • iOS MP4 camera capture
  • Compass support on WebAssembly
  • Improved Composition support for Skia (CompositionMaskBrush, CompositionNineGridBrush, LoadedImageSurface, CompositionViewBox)
  • ListView.IsMultiSelectCheckBoxEnabled support
  • GTK ability to extent window into TitleBar
  • WebView2 support for SetVirtualHostNameToFolderMapping for iOS/Catalyst/Android
  • PowerManager support for WebAssembly
  • Support PackageId on Skia and WASM
  • Skia support file:// uri scheme for Image
  • PreviewKeyUp/PreviewKeyDown in WebAssembly
  • Performance Improvements
    • Avoid native Paint re-creation
    • x:Bind bindback hidden NRE, including a specialized x:Bind parser
    • Misc allocation reductions in XAML source generators
    • Many resource dictionary key resolution performance improvements
    • Improved FrameworkTemplate Pooling for Skia and WebAssembly targets
  • Many small breaking changes to align further APIs to WinUI
  • Better fractional DPI scaling support for Skia+GTK
  • Many shapes clipping and alignment fixes for all platforms
  • Many measure and arrange phases alignments with WinUI
  • Many Hot Reload enhancements with full XAML and C# hot reload
  • Additional CSP compatibilty changes
  • TreeView drag and drop fixes
  • Many CalendarView fixes
  • Uno.WinUI.RemoteControl is now Uno.WinUI.DevServer
  • Many Flyout fixes
  • Theme detection improvements on Linux

Community Shout Out!

Our contributor community just passed 300 contributors across all our repositories – be it the core UI one, documentation, or gallery.

Among others:

  • Performance improvements by @Sweetdevil144
  • Generators improvements by @lindexi
  • Misc fixes by @mcNets, @limeniye, @TopProgrammer77, @workgroupengineering
  • Documentation updates by @peterfoot, @mmarinchenko
  • Composition API improvements by @ahmed605
  • Linux Theming, Gtk support by @manfromarce, @lindexi
  • TreeView improvements by @TopProgrammer77
  • PersonPictures updates by @jp-weber
  • GridView updates by @limeniye
  • Android PDF reader updates by @workgroupengineering
  • PreviewKeyUp/Down in WebAssembly by @TopProgrammer77

Full changelog

Features

  • [iOS] Add mp4 video capture in CameraCaptureUI ca03383
  • Add a Uno-specific to access the native Window f9982a2
  • Add ability to configure hot reload engine also in release 4e0ad7a
  • Add ability to pause and result hot reload 91e8c8d
  • Add Compass sensor Sample d1ce8a6
  • add feat flag to disable droid measure cache 020aaff
  • Add missing WinUI PackageVersion constructor 2f13210
  • Add support for app resources update 1c40f24
  • Add support for Compass on Wasm 4a0c277
  • Add support for partial hotreload for mobiel targets 7caf0e6
  • Adding ability to filter hr test cases fa93b8d
  • Adding capture/restore extensibility to hot reload ui update process d56f1bc
  • Adding capture/restore for scrollviewer ad95f89
  • Adding user control test case ca28f64
  • Clear mappings between tests cases f04c0ab
  • Enable VS non-debugger session updates 1264913
  • Give ability to client to listen for the server to be ready to process hot-reload (for testing purposes) fe2dea4
  • Make sure that dev server is running using the expected runtime 6ce06c2
  • Make the RemoteControlClient (i.e. client of the DevServer) self-reconnect to server if connection is dropped e091b28
  • Provide ability to disable type providers generation ad2939f
  • composition: Began work on RedirectVisual (+ Sample) and CompositionVisualSurface 32dd7a9
  • composition: Completed CompositionVisualSurface implementation + Sample c38a5b2
  • composition: CompositionMaskBrush + Sample 78c32ee
  • composition: Implement CompositionCapabilities 56c39cf
  • composition: Implement IVisualElement and IVisualElement2 c1db9bc
  • composition: Initial not-working-yet implementation of CompositionNineGridBrush 9dec61d
  • composition: More work on the CompositionNineGridBrush implementation + sample 2def209
  • listview: add support for ListView.IsMultiSelectCheckBoxEnabled 2e02592
  • remove unyson in docs navbar ffa7c3b
  • composition: Implement LoadedImageSurface + Sample e095db1
  • GTK Window: Extend into Title Bar e1f5054
  • itemspresenter: add support for header and footer a5ee3d5
  • NavigationView: Include Always unlink parent 5cfbc62
  • NavigationView: Include Delay load Hierarchical NavViewItem elements db71402
  • NavigationView: Include Disable virtualization fixes 8480b6d
  • NavigationView: Include Fix issue where NavView IsPaneOpen can end up incorrect when layout changes 879205d
  • NavigationView: Include Fix issue where setting IsPaneButtonVisible 647c4d8
  • NavigationView: Include Fix issue with cancelled touch pointers not resetting state correctly 38d7ae1
  • NavigationView: Include Fix issue with exception being thrown during cleanup of NavigationView 17e7855
  • NavigationView: Include Fixing NavigationView UIA set logic 0560a3f
  • NavigationView: Include Make NavigationView SettingsItem Tag not localized 0681b28
  • NavigationView: Include Navigation does not work when using Narrator in Scan Mode fd1ee79
  • NavigationView: Include NavigationViewItem add child item fix b58f36f
  • NavigationView: Include NavigationViewTemplateSettings.OpenPaneLength Update 4db764c
  • NavigationView: Include Porting NavigationView fixes 364970f
  • PersonPicture: Overwriteable properties for style a29aa80
  • PersonPicture: Overwriteable properties for style 5a37d19
  • PersonPicture: Overwriteable properties for version 1 style 1345f5b
  • PersonPicture: Overwriteable properties for version 1 style 4e88003
  • skia: Support RTL FlowDirection 912de33
  • WebView2: Basic support for SetVirtualHostNameToFolderMapping on Android 34935c2
  • WebView2: Basic support for SetVirtualHostNameToFolderMapping on iOS 1d285ed
  • [Android] PdfDocument 092f078, closes #1796
  • Add Compass sensor Sample 77d5b7a
  • Add feature flag for path overriding 8d92d3e
  • Add HeadingTrueNorth support for iOS b96e7e8
  • Add HeadingTrueNorth support for iOS 8b5f7f2
  • Add iOS support 45207ed
  • Add support for Compass sensor acff0a6
  • Add support for Compass sensor 9a01911
  • Add support for ItemIndexRange and ItemIndexRangeHelper 0396a72
  • Add support for localized Title 252b663
  • Add support for Package Description and PublisherDisplayName e012084
  • Add support for Package Description and PublisherDisplayName 31e50ec
  • Add support for the runtime tests to handle physical pixels sized bitmap de20349
  • Add support for VariableSizedWrapGrid 0871d4c
  • Add Windows.Services.Store namespace 1c8b81f
  • Add Windows.Services.Store.StoreContract to Sync Generator 400eae5
  • Adding handler attribute 66015df
  • Adding handlers for frame and page 25fe06f
  • Adding hot reload mapping dictionary for replaced types b8697db
  • Address Rule CA2211 57d281f
  • Adjusting updating of visual tree 4e0ca93
  • Allow LocalCache folder path override 500a460
  • Handle focus keyboard events in UnoFocusInputHandler only 23663ec
  • Include key modifiers in WPF pointer events af1863e
  • Make Uno.UI.Hosting available on all targets 5c6a6d5
  • Redesign docs header 3385d99
  • Register Samples app as Android TV application 1fb3316
  • Rudimentary KeyDown support on Android 2631833
  • Support for PowerManager on WASM 5c066b0
  • Support for PowerManager on WASM 95a5a2b
  • Support for PowerManager.BatteryStatus on WASM 26d7a75
  • Support for PowerManager.BatteryStatus on WASM 238763a
  • Support icon elements for NativeCommandBarPresenter 2dcad9b
  • Support PackageId on Skia and WASM c84bb00
  • Use OpenFolderDialog in .NET 8 WPF 195bb04
  • Use OpenFolderDialog in .NET 8 WPF 8f249a9
  • Use PopupRoot everywhere e7d3e0e
  • skia: Support RTL FlowDirection d6a5884
  • Use PopupRoot everywhere 0dde4ae
  • codegen: Add support for CreateNewOnMetadataUpdate bccdb66
  • composition: Compositor is now able to create CompositionViewBox 4bc74f9
  • hotrestart: [iOS] Add support for VS 2022 hot restart e69d507
  • maps: Restore iOS/Android maps control 814bd7e
  • MediaTransportControl: import Dropout and Expand 113f95d
  • perf: Fix lazy creation of ShapeCollection when not needed fbf1e7a
  • Skia: Support file:// uri scheme for images ade1453
  • WASM: add OnPreviewKeyDown to Control 027856f
  • WASM: implement the PreviewKeyUp/Down in WebAssembly 27553dd
  • xaml: Implement XamlCompositionBrushBase 42c8dbe

Performance Improvements

  • XamlFileParser: extract static array for split characters f2a76fa
  • add a record struct to _eventHandlers data type 0126432
  • adjust IInsertionPanel.GetInsertionIndexes fa2d735
  • adjust IInsertionPanel.GetInsertionIndexes 969462b
  • adjust when_disabled test because sometimes it fails fb2cd06
  • Adust dependency property parsing b810226
  • Avoid ROS<char>.ToString in BindingPropertyHelper fast convert 94c7d68
  • Avoid calculating DC binding unnecessarily 1e81939
  • Avoid InterpEntry for BindingPropertyHelper.GetPropertyType() 475fcc3
  • Avoid re-creating Android Paint instances e9cc68d
  • Avoid TwoWay bindback null reference exception fd23462
  • Avoid using DefaultConversionExtensions 95c7d8d
  • Bundle Paint reset steps in Java 9e168b4
  • change the visibility modifier of TupleComparer to private 5ed1a9d
  • Faster ImmutableList.Add 1d52445
  • implement custom flag for TreeViewList 562545e
  • implement custom flag for TreeViewList f56237c
  • Implement NativeDispatcher b864a89
  • Improve XamlFileGenerator.FindMember performance 5b89429
  • Improve XamlFileGenerator.IsImplementingInterface performance 9328132
  • Improve sync generator performance ed4b246
  • Initialize ApplicationData folders lazily e59e24e
  • Misc performance improvements 8809d49
  • Misc performance improvements 53ca794
  • Move PropertyMetadataDictionary from HashtableEx to Hashtable 0a6a8ed
  • Move PropertyMetadataDictionary from HashtableEx to Hashtable 29883f5
  • Reduce HashSet<DP> allocations from 150,656 bytes to 37,056 bytes on SamplesApp startup d47d8e1
  • Reduce string allocations in GetMarkupExtensionType 4ea4f4e
  • remove WASM in TrackKeyState() c91bfd5
  • Remove unused InvalidateMeasureCallCount (saves 4 bytes per FrameworkElement instance) 0e48e6b
  • Save 59,638 bytes of strings (550 string) on SamplesApp startup 98e8257
  • Save 66,838 bytes of strings (2137 string) on SamplesApp startup 7295a3f
  • Small perf improvements to WinUIRevert 17ce427
  • Take down bool boxing from 8k to 2k on SamplesApp startup 8228c06
  • Use Span CopyTo instead of Array CopyTo for better performance e2d7564
  • skia: Reduce UIElement size and avoid unused property changed registration f9315ab

BREAKING CHANGES

  • Uno.WinUI used to have NavigationView both in MUXC and WUXC namespaces. It's now removed from WUXC and kept only in MUXC namespace.

(cherry picked from commit ca19a4d5865f5c6f1dae53b5e3daeb39ab2863d3)

  • Fuzzy matching is now disabled by default

(cherry picked from commit ed7855d303f7bd999488e84de886b217ce5b1ef5)

  • Resources dictionaries are now required to be
    explicitly referenced by URI to be considered during resource
    resolution. This change is present to align the inclusion behavior with
    WinUI, which does not automatically place dictionaries as ambiently
    available. This change can be disabled by using FeatureConfiguration.ResourceDictionary.IncludeUnreferencedDictionaries.
  • Application.OnWindowCreated does not exist in WinAppSDK
  • DependencyObjectGenerator no longer generated an empty ApplyCompiledBindings method.
  • EasingFunctionBase API is now aligned with WinUI
  • Remove ResourcesService and ResourceHelper
  • Move SwipeControl, SwipeItem, SwipeItemInvokedEventArgs, SwipeMode, SwipeItems, and SwipeBehaviorOnInvoked implementation from WUX namespace to MUX namespace.
  • Move MenuBar, MenuBarItem, and MenuBarItemFlyout to MUX namespace
  • Implicit conversion from string to Point is removed.
  • Move AnimatedVisualPlayer, IAnimatedVisualSource , and IThemableAnimatedVisualSource from WUX to MUX
  • Rename CreateTheamableFromLottieAsset to CreateThemableFromLottieAsset
  • Rename Microsoft.Toolkit.Uwp.UI.Lottie namespace to CommunityToolkit.WinUI.Lottie
  • Avoid directly implementing ISensorEventListener on SimpleOrientationSensor on Android
  • Timeline shouldn't implement IDisposable
  • SimpleOrientationSensor should not schedule on Dispatcher
  • GridExtensions is made internal
  • The property is read-only in UWP/WinUI
  • ControlsResourcesVersion enum is moved to Uno.UI assembly
  • The following types are removed from public API: DelegateCommand, DelegateCommand<T>, IResourceService, IndexPath, and SizeConverter.
  • IsEnabled property is moved from FrameworkElement to Control
  • Remove SetContentOffset and SetZoomScale from IUIScrollView
  • Xaml generator now always uses strict search
  • Renamed the PropertyMetadata parameter to defaultMetadata
  • ShouldWriteErrorOnInvalidXaml now defaults to true.
  • Deleted dead code and some public APIs.
  • GetLeft, GetTop, SetLeft, SetTop, GetZIndex, and SetZIndex overloads that take DependencyObject are now removed. The UIElement overloads should be used instead.
  • Some obsolete members are now removed.
  • BaseFragment is not needed and is now removed.
  • ViewHelper.GetScreenSize method on iOS/macOS is now internal.
  • FrameworkElement constructors are now protected instead of public
  • ViewHelper.MainScreenScale and ViewHelper.IsRetinaDisplay are removed in iOS and macOS
  • Some RelativePanel methods had UIElement parameters named as "view". This is now renamed to "element"
  • WebView.NavigateWithHttpRequestMessage parameter type is now Windows.Web.Http.HttpRequestMessage instead of System.Net.Http.HttpRequestMessage
  • OnVerticalOffsetChanged and OnHorizontalOffsetChanged are now private instead of virtual protected.
  • PanelExtensions is now removed.
  • ICoreWindowEvents is no longer public.
  • FrameBufferHost and GtkHost constructors that takes args are now removed. args were already unused.
  • RegisterDefaultStyleForType methods were removed.
  • Xaml code generator was generating an always-null-returning FindResource method. This method is no longer generated.
  • SolidColorBrushHelper isn't available in UWP, so we are making it internal.
  • FontFamilyHelper is made static, and some APIs are removed.
  • Remove GetGeopositionHistoryAsync overloads that always returned empty list and don't match Windows signatures
  • Window.SetNeedsKeyboard in macOS is removed.
  • CalendarDatePicker._dateChanged shouldn't be public.
  • Removed SuspendingDeferral constructor that takes an Action
  • The type Windows.Storage.Streams.InMemoryBuffer is removed. Use Windows.Storage.Streams.Buffer instead.
  • Values of CreationCollisionOption weren't matching UWP. This is now fixed.
  • This type is hidden when programming with .NET.
  • Control.GetImplementedRoutedEvents method is now removed.
  • ContentPropertyAttribute.Name is now a field to match UWP.
  • In UWP, IClosable appears as System.IDisposable. The interface is now removed along with Deferral.Close which was implementing the interface.
  • ElevatedView was shadowing Control.CornerRadius. Now, ElevatedView.CornerRadius is removed.

Bug Fixes

  • fix!: Remove Windows.UI.Xaml.Controls.NavigationView from Uno.WinUI dcd271e

  • chore!: Disable fuzzy matching by default 588d150

  • fix!: Improve ResourceKey lazy resolution 825f68d

  • fix!: Remove Application.OnWindowCreated from WinUI tree 28dff5f

  • fix!: Remove ApplyCompiledBindings from code generated by DependencyObjectGenerator fa87ac3

  • fix!: Align EasingFunctionBase with WinUI 9de7a3e

  • fix!: Remove ResourcesService and ResourceHelper 3668a0c

  • fix!: Move SwipeControl to MUX f0c3395

  • fix!: Move MenuBar to MUX namespace f96c3c6

  • fix!: Remove implicit conversion from string to Point 64dd3b6

  • fix!: Lottie breaking changes 7677157

  • fix!: Avoid directly implementing ISensorEventListener on SimpleOrientationSensor on Android f99b243

  • fix!: Timeline shouldn't implement IDisposable 61849e7

  • fix!: SimpleOrientationSensor should not schedule on Dispatcher fe5d243

  • fix!: Make GridExtensions internal 775576e

  • fix!: Window.Visible setter should not be public 74167e6

  • fix!: Move ControlsResourcesVersion to Uno.UI assembly 5179ec3

  • fix!: Remove some types from public API 5e04dc1

  • fix!: Move IsEnabled property from FrameworkElement to Control bbaf224

  • fix!: Remove SetContentOffset and SetZoomScale from IUIScrollView 35e9359

  • fix!: Always use strict search d0d32f2

  • fix!: Update DependencyProperty.RegisterAttached to match WinUI parameter names 655f32d

  • fix!: Default ShouldWriteErrorOnInvalidXaml to true. 4e440f3

  • fix!: Delete dead code and public APIs. 9719cb1

  • fix!: Remove [Get|Set][Left|Top|ZIndex] methods that take DependencyObject from Canvas 8ef166e

  • fix!: Remove obsolete members 6b0b3d1

  • fix!: Remove unneeded BaseFragment class on Android e377a20

  • fix!: Make ViewHelper.GetScreenSize internal 197d785

  • fix!: Make FrameworkElement constructors protected. 43abb19

  • fix!: Remove ViewHelper.MainScreenScale and ViewHelper.IsRetinaDisplay fc9c235

  • fix!: Align RelativePanel methods parameter names 2caaf4b

  • fix!: Align WebView.NavigateWithHttpRequestMessage signature with UWP 00ea4b6

  • fix!: OnVerticalOffsetChanged and OnHorizontalOffsetChanged are no longer protected. 607c6c9

  • fix!: Remove PanelExtensions bebca81

  • fix!: ICoreWindowEvents is made internal. 6ab96db

  • fix!: Remove constructor overloads that takes an unused args parameter 99f1cce

  • fix!: Remove unneeded Style.RegisterDefaultStyleForType 7a3dbe2

  • fix!: Remove always-null-returning FindResource from Xaml generated code e42d2ee

  • fix!: Make SolidColorBrushHelper internal 706b5af

  • fix!: Adjust FontFamilyHelper 8085f0b

  • fix!: Remove wrong GetGeopositionHistoryAsync overloads from Geolocator 1bb014a

  • fix!: Remove SetNeedsKeyboard from macOS fb6259d

  • fix!: Remove CalendarDatePicker._dateChanged 015285e

  • fix!: Removed SuspendingDeferral constructor that takes an Action 5cf0335

  • fix!: Remove Windows.Storage.Streams.InMemoryBuffer f7727fb

  • fix!: Correct values of CreationCollisionOption enum 15d698b

  • fix!: Remove Windows.Foundation.HResult bad98eb

  • fix!: Remove Control.GetImplementedRoutedEvents d829734

  • fix!: Make ContentPropertyAttribute.Name field instead of a property. 7ecf9ec

  • fix!: Remove Windows.Foundation.IClosable and Deferral.Close a9fa4b0

  • fix!: ElevatedView shouldn't have CornerRadius as it exists in the base Control class. bd4a9c0

  • add GrantWriteUriPermission to file save picker c3599ae

  • Adjust _ValidateSvgDependencySkia to check for minimum Svg.Skia version a1f43f3

  • Adjust bindable metadata provider generation when type count is large 0c495f8

  • Adjust clipping logic to be closer to Windows 810e5eb

  • Adjust compatibility for RemoteControl package 3c36733

  • Adjust descriptions for Catalyst/iOS apps d3e22c1

  • Adjust for nint support for TSBindingsGenerator be7537a

  • Adjust generator for disabled metadata provider 7f8cc25

  • Adjust GTK to handle Windows fractional scaling in all cases f10fe76

  • Adjust mobile hotreload 5fc3767

  • Adjust support for non-newtype HR updates 6052026

  • Adjust Type.GetType and reflection exclusion to avoid interpreter fallback in DependencyPropertyDescriptor.Parse b7de5f9

  • Adjust x:Load insertion on iOS/Catalyst considering manual CALayers b9467b0

  • Avoid DPI scaling issues on GTK eb339e5

  • Avoid nested UI classes in runtime tests e40221a

  • Avoid possible exception in hot-reload 8c64eae

  • Avoid using nested View class in Given_Border 262c4c3

  • Change Restore to support async eda8bb4

  • Correcting handling of datacontext due to inheritance 1cabf10

  • Correctly generate nested merged dictionaries e6dee03

  • Disable resizetizer codegen for UWP eef33f3

  • Don't skip arrange if the element is measured with zero size 4c7390c

  • Don't use static fields to store compilation symbols 1c00ca0

  • Enable FrameworkTemplatePool for Skia targets 4edf37f

  • Enabling test case f8e8bf2

  • Ensure browser does not truncate filename 810f523

  • Ensure to run dev-server using the right dotnet version 81d44cc

  • FilePickerSelectedFilesArray.Count shouldn't have a throwing setter #6885 1031ce9, closes #6885

  • FilePickerSelectedFilesArray.cs set removed 5656496

  • Fix corner radius handling on Wasm 17282ef

  • Fix elevated view double border on Wasm 2e02685

  • Fix hot-relaod of nested resource dictionnaries d9a6f0b

  • Fix iOS CameraCapture crash when cancelling c2ffe6e

  • Fix shapes clipping on Android 59e459e

  • Fix SwipeContentStackPanel orientation not set properly on Wasm/Skia f63f90b

  • fix the build error of RemoteControl.Wasm 257322c

  • Generate chesum based subclasses names to metadata updates c65de58

  • Implement IUnoKeyboardInputSource on FrameBuffer 35bfe5c

  • Improve metadata update tracing bf5bb86

  • Make sure update message includes metadata relevant to current instance e357a86

  • Making classes accessible to windows via uno.ui.toolkit 9963531

  • Match FrameworkElement.[Measure|Arrange]Override with Windows 74fd140

  • Properly prevent the correct specific gesture f62383e

  • Properly replace target framework for net8.0 reference 13dbe58

  • property escape % in resw files e69047d

  • Provide the ability to troubleshoot Roslyn's hotreload 9ac3bf3

  • Restore XamlReader HR for mobile targets 01a5f6f

  • Set _lastSingleTap even when Tap is prevented d8fd096

  • Setting dispatcherqueue from current window d7ebe55

  • Use most recent available uno-runtime from packages 4a41e18

  • android: Invalidate measure when removing a managed view a2e5829

  • android_clipping: Fixed clipping was applied on Android when opacity (Alpha) where less than 1. a50a332

  • AppData: Don't reuse ISharedPreferences instance 1e9f5b6

  • binding: Avoir reading source property on UpdateSource for non-DP 203609d

  • Catalyst: prevent npw e9f945d

  • clipping: Fix clipping of the Border 76c50a1

  • composition: ContainerVisual now sets the parent visual on its items a34e306

  • composition: Fix multiple RotationAngleInDegrees implementation and uniformize the Transform support of composition objects d44fa14

  • composition: Use ShapeVisual as visual for UIELement, use its Shapes to render "local content" instead of adding sub-visual, and its ViewBox to properly clip transformed content. b1a787b

  • fb: Adjust initialization for framebuffer host de705fd

  • fb: Don't validate textbox features when IOverlayTextBoxViewExtension is not avialble 5999814

  • flyout: fix nested flyout closing/closed event ordering 2be07b5

  • gtk: Adjust window bounds computation 0b8ff85

  • hr: Adjust wasm reload for missing updated types in VS 17.8 df02162

  • hr: Don't propagate RuntimeIdentifier so libraries can build using their natural targets fe0554a

  • hr: Ensure UnoRuntimeIdentifier is included in devserver attributes d45ea36

  • hr: Use type mapping for x:Bind inner bindings class 17f9c70

  • intellisense: Add missing XmlnsDefinition for Automation namespace 023117e

  • iOS: clear scrollview weakreference b5969ca

  • iOS: DataContext detaching from ListViewItem 1ed3c9f

  • iOS: prevent removing parent when reusing listviewitem 98b44e6

  • itemspresenter: fix ItemsPresenter.<Measure|Arrange>Override in case of padding bf8c396

  • ListView: droid lv crash when scrolled 983654f

  • lottie: Use a net8 compatible property for lottie/skiasharp detection c413d09

  • MessageDialog: Apply current application theming on Android cc19d98

  • MessageDialog: Apply current application theming on iOS 8604656

  • Adjust path measuring for Uniform and UniformToFill stretch modes b36ecee

  • Calculate shape bounding box properly on Android excluding control points a5cf2d9

  • Correct availableSize value passed to MeasureOverride to match Windows ced8fe6

  • Execute Resuming only after Suspended 9bafc42

  • Fix path bounds calculation on Skia e6d5dc2

  • Remove netcoreapp3.1 legacy support 649da43

  • reset _applyTemplateShouldBeInvoked when OnApplyTemplate is called 939327e

  • Respect DefaultBindMode of ResourceDictionary 022e0f7

  • android: Propagate theme change to all list view items properly 52e64d6

  • assets: Adjust upri handling e37c2d7

  • commandbar: fix popup not dismissing when a pointer clicks outside it 7143b80

  • csp: Make setCursor CSP compliant 9f25ea9

  • hyperlink: change color on hover/press 17ed3b4

  • iOS: Window null pointer exception 0a51e71

  • listview: account for panel orientation 4a44ab9

  • pointers: Fix multi-press on Gtk cc6cbff

  • reg: Fix CornerRadius clipping cf1dae7

  • reg: Fix memory leak with TextBlock 06e2fd8

  • reg: Fix RefreshContainer content not visible 646e5a7

  • reg: Fix shappes offset being ignored 066056d

  • renderTargetBitmap: RenderTargetBitmap using logical pixels on iOS 56d31f0

  • ToggleSwitch: Don't force end position when ToggleSwitch is unloaded 5ad2ca2

  • TreeView: allow dragging and dropping of treeview items 50e0552

  • TreeView: prevent throwing exception 36c06c9

  • vs: Restore intellisense for non-windows targets 6f6d027

  • wasm: Don't convert content to uno assets for hosted server projects 5e49f77

  • wpf: Fix CoreWindow.PointerCursor not working on WPF e0581a6

  • Adjust more devserver package changes e629e48

  • Adjust WASM launchSettings to work with Dev Tunnels 8197141

  • Align Duration behavior with WinUI 4ba972b

  • Assert DisplayName value instead of Title a875c41

  • Avoid duplicate SyncDataContext 45a0ebf

  • Detach native element on Unload 76e63b8

  • Do not log error when favorites or LRU samples files are missing c10984e

  • Don't swap R and B 378f2ea

  • Ensure Android apps can launch for debugging d44bd53

  • Ensure CalendarView item styles are updated properly on reload 00f8582

  • Ensure common transitions do not cause startup errors e2b11c4

  • Ensure WASM- and Skia-specific WinRTFeatureConfiguration is accessible 692d4ca

  • Ensure Window size is initialized for Android 71e419d

  • Fix MenuFlyoutSubItem placement on Android on first open dcd55ff

  • Fix path closing on macOS 22f2f35

  • Fix path stroke thickness scaling on Skia when it shouldn't 394220f

  • Fix possible race condition in animations a87dd32

  • Fix RenderTragetBitamp to return physical pixels image on skia 1654005

  • Fix shapes when Stroke is null dc7cda4

  • Fix Stretch.None behavior and closing path on Skia 5e9a12f

  • fix the syntax error of IInsertionPanel.GetInsertionIndexes be863a0

  • Mark generated files for incremental build support 87cd188

  • markdown tab docs 0ea6bc5

  • padding should affect measure a812c34

  • Propagate theme change to TextBlock inlines 7f692c8

  • Properly override ProcessCandidateTabStopOverride in CalendarView ec72d6c

  • Rename RC to DevServer a9d1d54

  • Tests don't correctly exit when they fail 29c589b

  • use MSBuild props to set app title, version & id c6f98a4

  • UWP sample app not building properly e1e0cda

  • WebMessageReceived must execute on the UI thread 0e031a2

  • android: Fix rendering of RenderTargetBitmap 1a048e7

  • android_clipping: Fixed clipping was applied on Android when opacity (Alpha) where less than 1. 7886b32

  • CameraCaptureUI: [iOS] Adjust camera capture for recent iOS builds 8b34d80

  • clipping: Change the way the clipping is activated on Android to bring the logic closer to other platforms. f2d1d0f

  • dragdrop: [Wasm] Adjust interop for multi files drag and drop b66ea0a

  • flyout: close flyouts on window size changed or unfocused e7495b7

  • flyout: fix dismiss flyout on Escape fd338db

  • flyout: focus flyout child on open 89f1b99

  • flyout: open flyout on tap e81f61d

  • ios: an instance of ListView crash during layout 7c54365

  • iOS: Implement new screen orientations APIs for 16 51a38fb

  • iOS: prevent multiple CMMotionManager sessions 177885c

  • listview: add ctrl support for keyboard navigation in ListView 566216e

  • listview: add support for Ctrl+Click unselecting 953ac58

  • listview: Adjust scrollbar height to avoid duplicating the header size 471298f

  • listview: recycled containers should clear their Index 4414d3a

  • listviewitem: clear visual state on recycle. daf0895

  • menuflyout: Fix potential NRE on closing Popups 9e3a0c0

  • menuflyout: properly propagate DataContext from the Popup 02f0ea9

  • menuflyout: properly propagate DataContext from the Popup c2917c2

  • net8: Adjust WinUI property detection 591797b

  • rc: prevent stack overflow on assembly resolution 41ee094

  • rc: Terminate RC host on parent process termination f614532

  • resources: Incorrect resource resolution for multiple identical source dictionaries f58be7b

  • RotatedListView_WithRotatedItems: ListViewItem Glyph changed to E73E 13b79a0

  • scrollviewer: raise PointerEnter/Exit when scrolling causes the pointer to be over a new item 2fd9da2

  • shapes: Get shapes arrange closer to UWP b6658d2

  • skia: Fix app staying blank if no background on the main page ed34f40

  • TextBox: Avoid NRE on Android on virtual keyboard enter 1a3606b

  • treeviewlist: make DispatcherHerlper use DispatcherQueue which fixes setting IsExpanded in PrepareContainerForItemOverride 92913c2

  • XamlReader: Properly support TemplateBinding of attached properties c187ba5

  • Adjust log level of UpdateZoomedContentAlignment 5b2b812

  • Adjust path measuring for Uniform and UniformToFill stretch modes bff7e27

  • Align the core measure logic more with Windows 6bc2e50

  • Avoid raising events on non-UI thread ff65fa1

  • Calculate shape bounding box properly on Android excluding control points de33870

  • Correct availableSize value passed to MeasureOverride to match Windows ab49b2a

  • Fix binding property path for expressions with parentheses and casts d3a2af2

  • Fix path bounds calculation on Skia 205a927

  • Fix path closing on macOS 90afd16

  • Fix path stroke thickness scaling on Skia when it shouldn't 9119170

  • Fix possible race condition in animations fdec823

  • Fix shapes when Stroke is null 48d7c5f

  • Fix Stretch.None behavior and closing path on Skia 53baca9

  • Improve system dark theme detection on Linux c10924b

  • Keyboard events should not throw on Uno islands faf5eae

  • ListViewItem style glyph similar as in CheckBox 3305ee0

  • winappsdk: Adjust 1.4 detection 36e11c1

  • Synchronize TemplatedParent after PopupPanel iss initialized eeca65a

  • update Uno.Fonts.Fluent for informational icon 5844c67

  • dragdrop: [Wasm] Adjust interop for multi files drag and drop 939f47f

  • fb: Adjust initialization for framebuffer host 67a7cad

  • fb: Don't validate textbox features when IOverlayTextBoxViewExtension is not avialble 5200ccf

  • GridView: GridViewItem checkbox style as in ListView ecf4157

  • iOS: prevent multiple CMMotionManager sessions c1698b5

  • listview: account for panel orientation 625a7e6

  • navigationview: remove OnExpandCollapseChevronTapped which was flipping IsExpanded after it was already flipped, undoing the change ed41f53

  • resw: Log invalid resw language as warnings 77808f0

  • TextBlock: [Skia] Fix unsupported symbols rendering 2a8b962

  • Execute Resuming only after Suspended a4c429a

  • GridView: Multipleselection mode. 5d43fe2

  • listview: recycled containers should clear their Index 20350a1

  • listviewitem: clear visual state on recycle. 823b6eb

  • menuflyout: Fix potential NRE on closing Popups 60a585f

  • navigationview: remove OnExpandCollapseChevronTapped which was flipping IsExpanded after it was already flipped, undoing the change 43a3797

  • RotatedListView_WithRotatedItems: ListViewItem Glyph changed to E73E 6f1a28c

  • scrollcontentpresenter: fix offset calculations when viewport size is greater than content size 417e437

  • scrollviewer: fix scrollability logic in PointerWheelScroll 7db8ac0

  • shapes: Get shapes arrange closer to UWP a244c1e

  • skia: Fix app staying blank if no background on the main page 823a697

  • TextBlock: [Skia] Fix unsupported symbols rendering a8d063f

  • TextBox: Avoid NRE on Android on virtual keyboard enter d023bb1

  • TreeView: allow dragging and dropping of treeview items 0ab8332

  • TreeView: prevent throwing exception 390f0dd

  • vs: Restore intellisense for non-windows targets fe8a4e0

  • Adjust log level of UpdateZoomedContentAlignment 02bee2f

  • Align the core measure logic more with Windows 78f96d8

  • Avoid raising events on non-UI thread 191c76f

  • Fix binding property path for expressions with parentheses and casts f10746f

  • Fix MenuFlyoutSubItem placement on Android on first open f8c11eb

  • fix the syntax error of IInsertionPanel.GetInsertionIndexes c607004

  • Ignore Pedometer TryCreateInstance 605594d

  • Improve system dark theme detection on Linux e4c747f

  • Keyboard events should not throw on Uno islands 8e7ead8

  • ListViewItem style glyph similar as in CheckBox ff1be7a

  • Mark generated files for incremental build support fe6ce7c

  • markdown tab docs 943b363

  • Properly override ProcessCandidateTabStopOverride in CalendarView d1674f8

  • winappsdk: Adjust 1.4 detection 85a5aae

  • Null Background on XamlIslandRoot 34a589d

  • Properly warn the user about UpdateZoomedContentAlignment 825bc0a

  • Respect HyperlinkForeground 61c839e

  • Set initial Window size earlier on WASM 7e139e8

  • Synchronize TemplatedParent after PopupPanel iss initialized 7e06240

  • Use fallback color for unsupported brushes a6f162a

  • skia: Fix clipping issue when using render transforms e654071

  • slider: fix dragging when the initial press is not on the thumb 2c8c455

  • xamlreader: res-dict parsing 3a08d16

  • Adjust hotrestart disable property 35b32c2

  • Don't generate hotrestart stubs when maui is present 1f2daad

  • Ensure ThemeResource bindings are properly updated when style is applied 7d69690

  • Fix memory manager not being used properly on Skia 3f1f0e5

  • Fix ScrollBarVisibility regression on Wasm 6d55017

  • Fix TemplateBinding not working with attached DPs 96e2283

  • Fix toggle switch knob translation 0b1215b

  • Fix x:Bind not considering inherited methods for events b94c449

  • iOS unsupported Title 8d08e83

  • Prevent nested elements with GestureRecognizers from raising overlapping events a0cdd1c

  • Remove failing Range from test 686e436

  • Updated the code to work with the recent changes 6a8092d

  • ItemsRepeater: Fix ItemWrapGrid not sizing dynamic items properly afed695

  • xamlreader: attached-property in setter 79bd074

  • Adjust incorrect VirtualKey enum values 14fd019

  • Avoid propagating routed events up from PopupPanel 326a0ec

  • Avoid unsetting item container DataContext 02b42f4, closes #12845

  • comment out unimplemented PointerUpThemeAnimation from Generic.xaml 0b01f37

  • docs markdown tab 83a7ce7

  • Ensure initial Mesure/Arrange happens only when Window has allocated size 594ea6c

  • Ensure that clipping changes are applied 98aee9a

  • Fix formatting error 7992e9d

  • fix performance regression of unnecessary EnsureMaterialized calls. 65b4a4c

  • fix property inheritance for Control.IsEnabledProperty ea88803

  • Fix resolving attached properties for platform-specific xaml namespaces d8fb339

  • Fix TextDecoratios DP type and improve conversion to enum handling 99dd854

  • Improve VirtualKey mappings ae14a69

  • Notify Uno Window of FrameBuffer Window creation 2937d9d

  • Notify Uno Window of GTK Window creation a71574a

  • Notify Uno Window of WPF Window creation b67b77c

  • assets: Adjust assets caching by including assembly and package versions 57a48eb

  • button: Change default Button style to match Windows 3a046c7

  • button: fix button ignoring ButtonForeground/PointerOver values 446223c

  • iOS: ListView delete item with Bindings 2fa709a

  • Properly adhere to brush changes (and refactor) 0015c9b

  • button: fix VisualStates not binding to resources on first load 2095da5

  • ComboBox: Adjust incorrect visual state update 566f384

  • Input: Properly update last input device type on Skia and WASM b9475ed

  • listview: [Android] Adjust datacontext for header/footer for ListView 9b9ea84

  • listview: [iOS] Adjust datacontext for header/footer for ListView d6de226

  • ListView: [iOS] Ensure that the DataContext propagates properly to Header/Footer 85e8594

  • ListView: Fix element not placed properly when re-ordering 8edbc1b

  • scrollviewer: fixed scolling by pressing scrollbar thumb in a ScrollViewer. efa2eed

  • svg: Use StorageFile for reading the SVG payload d46894b

  • WebView: Update Android navigation properties on JS-based history changes a0c229f

  • WebView: Update iOS navigation properties on JS-based history changes 290336d

  • Avoid duplicate events for FlipView 04e9737

  • Correcting event handler removal 8d11d44

  • Correcting startup location for remote control service b83b010

  • Fix ListView selection when items are duplicated 0e748ec

  • Properly update WebView history properties 96999a8

  • remove meaningless calls to UpdateResourceBindings 77c7a44

  • Use the correct default value for string DPs 10e7733

  • Write a custom x:Bind parser instead of relying on Roslyn's SyntaxFactory 3c85843

  • android: Add support for resource resolution for net8+ cbfcd12

  • filepicker: add delegate for image picker 6f31a75

  • iOS: AutoSuggestBox selection 0786f13

  • iOS: AutoSuggestBox selection with MultiLineText 146cd93

  • rc: Restore Uno.WinUI.RemoteControl.Messaging dependency 31555f2

  • scrollviewer: Clean up the fix to scrollviewer scrolling 744a0b3

  • scrollviewer: fix ScrollViewer scrolling and interaction with child ScrollBars to match Windows 9e1d871

  • scrollviewer: fix ScrollViewer scrolling by ScrollBar buttons on Skia 3388733

  • skia: restore proper visibility for FrameworkElement.NameProperty aac26e1

  • SyncGenerator: Generate missing attributes 72ac37e

  • textbox: fix regression from previous commit on all platforms but Skia 354ca5d

  • Implementing IDisposable and detaching event handlers 7d5acf3

  • textbox: fix Wpf's password text box behaviour de2b48a

  • Search results shows scrollbars on Microsoft Edge dbd2cb6

  • textbox: added SelectionBeforeKeyDown to the Skia TextBox hierarchy 0228293

  • textbox: Changed details in TextBox keyboard navigation and related 4665dc6

  • textbox: Fixed TextBox keyboard navigation only working vertically 2645857

  • xamlgen: Fix InvalidCastException when accessing array in x:Bind 1c3221e

  • Add missing ContentProperty attributes f20bfb2

  • Adjust not implemented link ad36125

  • Adjust reading package to return null if Logo not specified 8a22c72

  • Adjust visibility of missed reference members 6904f20

  • droid: FlipView Background color e138fbb

  • Adjust runtime replace to avoid self-reference b709f73

  • android resource encoding blank filenames dd2358e

  • avoid null check 6f19c62

  • Correct nullable usage 340af1a

  • Correcting loading behaviour for subsequent calls to Logo 1025db7

  • Fix Binding '' not working 2787a82

  • Fix Main window is not set yet exception on Skia 78bee7a

  • Fix setting source on WriteableBitmap for Android and Skia 5500d6c

  • TextBox: Propagate FontFamily to DisplayBlock on Skia 62bc87d

  • Restore iOS tests, move to dotnet test 0b266b8

  • Show window content only when both Activate and Content are set 64c17dc

  • update Uno.Fonts.Fluent for informational icon 39eb90f

uno - 4.10.13

Published by jeromelaban about 1 year ago

The 4th release of 2023 brings many updates to Uno Platform, including the much-requested MAUI Embedding, Lightweight Styling along with the new ShadowContainer control, Neumophic Styles, iOS Hot Restart, Wasm CSP Support and more.

Our team is aiming to make you as productive as possible developing with .NET. The community and clients asked for MAUI extensions to be developed to aid them in Xamarin.Forms migration, so we delivered. In addition we support the .NET OSS ecosystem and we regularly contribute to .NET, including the two PRs that are making MAUI embedding more effective (https://github.com/dotnet/maui/pull/16758, https://github.com/dotnet/maui/pull/16803), as well as the latest SkiaSharp 2.88.5 which includes .NET 8 compatibility and WebAssembly fixes.

See our blog post for more details!


Features

  • hotrestart: [iOS] Add support for VS 2022 hot restart e74af99
  • Enable DispatcherQueueTimer and DispatcherTimer on unit tests 6a70e3d
  • pointers: Add (internal) ability to prevent default behavior of pointer events on WASM 5d302d3
  • pointers: Update skia hosts init to unify pointer support b2b0a54
  • scp: Add ability to reverse pointer wheel on the SCP for managed scrolling on skia and wasm 4be3764
  • Support for ProximitySensor on Android 383eb2e
  • pointers: Add PointerInputSource for macOS e9941bf
  • Support for SingleSelectionFollowsFocus 50ceb6d

Performance Improvements

  • Add Alert binding 6c7f6db
  • Add ApplicationView bindings a579aa9
  • Add AssetsManager bindings b02b729
  • Add Automation exports 109938c
  • Add BadgeUpdater bindings 60ab27a
  • Add ContactPicker bindings b9571c7
  • Add DataTransferManager bindings 3769dae
  • Add DispatchBackRequest export 45ea17f
  • Add DispatchContentChanged export 2e0c9da
  • Add DispatchMessage export 9b10802
  • Add DispatchNativePositionChange export f178115
  • Add DispatchStateChanged export 62bb542
  • Add DispatchStatusChanged export b857ab6
  • Add DispatchStorageInitialized export c0b6900
  • Add DispatchSystemThemeChange export e9b2451
  • Add DispatchVisibilityChange export 06f31f2
  • Add DisplayInformation exports 68d4243
  • Add DisplayRequest bindings 1b60854
  • Add DragDropExtension bindings 80bea90
  • Add FindDevices binding a16faba
  • Add FontFamily exports 41cd620
  • Add Gamepad bindings 387cf90
  • Add Gamepad exports ec769bf
  • Add GenerateGuids export b0c13b1
  • Add GetUserAgent binding 74367b5
  • Add Gyrometer bindings a841dd2
  • Add Gyrometer.DispatchReading export 48b1a69
  • Add LightSensor bindings 3de29ad
  • Add LightSensor.DispatchReading export 2207ef9
  • Add Lottie bindings 89b89fe
  • Add Magnetometer bindings 8911155
  • Add Magnetometer.DispatchReading export 2e1f623
  • Add MidiDeviceConnectionWatcher bindings 0da6c21
  • Add MidiInPort bindings c01a392
  • Add NetworkInformation bindings cca5e0d
  • Add OnNativeDropEvent export 7114313
  • Add Open binding b64414c
  • Add RegisterProtocolHandler binding d412b4a
  • Add RequestAsync binding 1a6e598
  • Add SendBuffer binding 6a75970
  • Add SpeechRecognizer bindings 22daa68
  • Add SpeechRecognizer exports 207f109
  • Add SystemNavigationManager bindings 81dd293
  • Add VibrationDevice bindings 342f2c3
  • Proper cancellation for XamlFileParser 463d921
  • Reduce array allocations when setting a single property on Wasm 9634171
  • AnalyticsInfo: Add GetDeviceType binding 6146848
  • ApplicationViewTitleBar: Add SetBackgroundColor binding 8d54f1a
  • Clipboard: Add GetTextAsync binding 582ff39
  • ConnectionProfile: Add HasInternetAccess binding 13d39e9
  • CoreWindow: Add SetCursor binding c3ee894
  • DisplayInformation: Add SetOrientationAsync binding 9cdf0b7
  • FileSavePicker: Add SaveAs binding ed5ef1b
  • Add WebAuthenticationBrokerProvider bindings d3b2e48
  • MSAL: Add AuthenticateAsync binding ec977f6
  • WindowManager: Add GetNaturalImageSizeAsync binding 223c0e6

Bug Fixes

  • android: Propagate theme change to all list view items properly 97dc9ac
  • android_clipping: Fixed clipping was applied on Android when opacity (Alpha) where less than 1. 7c69057
  • assets: Adjust assets caching by including assembly and package versions d7317ff
  • CameraCaptureUI: [iOS] Adjust camera capture for recent iOS builds 520e3af
  • ComboBox: Adjust incorrect visual state update 0422986
  • fb: Adjust initialization for framebuffer host b66e798
  • fb: Don't validate textbox features when IOverlayTextBoxViewExtension is not avialble 2f6fd2c
  • filepicker: add delegate for image picker 41b16bc
  • flyout: fix dismiss flyout on Escape cb89661
  • flyout: open flyout on tap 78ba0bb
  • Input: Properly update last input device type on Skia and WASM db7ba1f
  • ios: an instance of ListView crash during layout 3d0a558
  • iOS: ListView delete item with Bindings eccdb9b
  • listview: [Android] Adjust datacontext for header/footer for ListView 42453be
  • listview: [iOS] Adjust datacontext for header/footer for ListView e51355a
  • listview: add ctrl support for keyboard navigation in ListView 87620d3
  • listview: add support for Ctrl+Click unselecting e161fae
  • ListView: [iOS] Ensure that the DataContext propagates properly to Header/Footer f0fa91d
  • net8: Ensure that roslyn generators can be used when LangVersion is empty 722ad06
  • scrollviewer: raise PointerEnter/Exit when scrolling causes the pointer to be over a new item ae436b6
  • slider: fix dragging when the initial press is not on the thumb 2a19610
  • TextBlock: [Skia] Fix unsupported symbols rendering 5ffb03b
  • TextBlock: fix the whitespace missing issue of TextBlock Inline 90c29b4
  • ToggleSwitch: Don't force end position when ToggleSwitch is unloaded 830f517
  • vs: Restore intellisense for non-windows targets 50255d5
  • WebView: Update Android navigation properties on JS-based history changes fac11f6
  • WebView: Update iOS navigation properties on JS-based history changes 11f2de9
  • xamlreader: attached-property in setter 35a6aeb
  • xamlreader: res-dict parsing 362e2a6
  • Adjust hotrestart disable property b04c179
  • Align Duration behavior with WinUI e0bd26e
  • Avoid duplicate SyncDataContext 74e8472
  • Avoid propagating routed events up from PopupPanel 3f7c219
  • Avoid throwing if result of ExecuteScriptAsync is null 38cfd0f
  • Avoid unsetting item container DataContext 5250ebc, closes #12845
  • Correcting event handler removal cc6997c
  • Correctly raise ImageFailed on Skia 620c190
  • docs markdown tab d18abe2
  • Don't generate hotrestart stubs when maui is present 845edcb
  • Ensure CalendarView item styles are updated properly on reload dc00963
  • Ensure ThemeResource bindings are properly updated when style is applied 341cd26
  • Ensure Window size is initialized for Android a52a3d1
  • Fix TemplateBinding not working with attached DPs 06d2261
  • Fix toggle switch knob translation 37fe8ae
  • Fix x:Bind not considering inherited methods for events b293cda
  • Image with explicit size is not arranged correctly c3cc5b0
  • Implementing IDisposable and detaching event handlers 1bf5fad
  • MediaPlayerElement does not play a local source 25e3d33
  • Prevent nested elements with GestureRecognizers from raising overlapping events e2b9066
  • Propagate theme change to TextBlock inlines ab9df61
  • Properly display PosterSource for MediaPlayerElement on all platforms 9f0a507
  • Properly generate code for items in custom dictionary 8a208e8
  • Properly update WebView history properties 8c30254
  • Raise ImageFailed properly on Android adab001
  • Respect HyperlinkForeground 5c7b93d
  • Set initial Window size earlier on WASM a883ba8
  • Uno Islands sample apps had incorrect targets set 4ef38b2
  • droid: CommandBar AppBar Icon crashing 8ff5e83
  • droid: nullable types 9580db2
  • Adjust DispatcherQueueTimer behavior to match WinUI 94318ef
  • Adjust DispatcherQueueTimer on Android to match WinUI behavior 5ed9e54
  • DispatcherTimer with default Interval on Skia and WASM f43af6c
  • Use fallback color for unsupported brushes 67657f1
  • AutoSuggestBox: adjust the parameter of SubmitSearch f5c17e3
  • AutoSuggestBox: fix the AutoSuggestBox not working when using custom ItemContainerStyle 1041d3f
  • AutoSuggestBox: fix the issue that e.ChosenSuggestion is incorrect 7c3911b
  • AutoSuggestBox: fix the issue that SuggestionList is not updated properly 5a502ac
  • AutoSuggestBox: Init the ChosenSuggestion to null after calling the QuerySubmitted handler 8b4624a
  • AutoSuggestBox: optimize the code 90bd0a7
  • AutoSuggestBox: return null as ChosenSuggestion when query button is clicked c471dc1
  • AutoSuggestBox: set QueryText to _textBox.Text d0b99ae
  • AutoSuggestBox): revert "fix(AutoSuggestBox: Init the ChosenSuggestion to null after calling the QuerySubmitted handler" e45dafa
  • ContentControl: set Content null when using ComboBox 1eaea2a
  • droid: SVGImageSource open file when custom downloader 1c94322
  • FileOpenPicker: iOS open image library when using PickerLocationId.PicturesLibrary c7e92ef
  • gtk: report gtk init error through stderr. 5da0b4b
  • ImageSource: SvgImageSource crashing on null uri abc8426
  • iOS: SVGImageSource null exception efc6778
  • linux: Adjust initial position on ubuntu distro d378ff9
  • lottie: Fixed a regression where the lottie module where not properly loaded when the was used in the csproj baa1652
  • media: Adjust error reporting on libVLC initialization 246621f
  • media: adjust packaging for Skia.Gtk be2fc32
  • media: Adjust render surface for linux d933b7d
  • media: Don't layout on zero SarDen 84facec
  • media: Enable nullable for Transport controls 3a87db6
  • media: Enable nullable for Transport controls e24fd99
  • media: more button not hidden 8a67fae
  • media: Only show transport controls on mouse move 8d2d3f1
  • media: Potential child window positioning error for gtk 267078f
  • mediaPlayerElement: Fix clipping + possible event handler leaks + possible null ref exception with custom template 7e460b0
  • mpe: Adjust error messages for wasm and skia 57700f8
  • mpe: Adjust for looping availability 44b80f7
  • mpe: Adjust gtk playback render surface sizing 41ac680
  • mpe: Adjust natural position update bd1c126
  • mpe: AutoPlay=false stuck in Opening state 204a034
  • mpe: Disable progressbar when player is not loading or buffering 6befe9d
  • Pointers: Defer pointers initialization dbbac8c
  • progressBar: IsIndeterminate don't trigger SetProgressBarIndicatorWidth when widths didn't change 313c689
  • reg: Fix Wheel support on WPF 0877b38
  • skia: Fix MouseWheelDelta values (add hard coded factor of 120 + fix inconsistent direction) 35065bd
  • NavViewItem might remain in over state when auto dismiss on click e1ce8d1
  • mpe: Ensure visual states are reflected based when binding the player 114adb6
  • mpe: fix for macOS failure on not available player b0ee28f
  • mpe: MTC show&hide behaviors 7946d6f
  • MPE: MediaTransportControls visuals 43673a8
  • Android Window/VisibleBounds calc 56fd87c
  • Respect Exif orientation when displaying images on Android 13ee0ad
  • Set BitmapSource's PixelWidth/PixelHeight properly f416e23
  • pointers: Use ContentRoot instead of Window.Current (support for pointer exited in XamlIsland) 86d42f2
  • reg: Fix pointers init on macOS and injector init for tests 1903ea1
  • Selector: check for int for SelectedIndex 83377bc
  • ToolTip: add the missing part 390aee5
uno - 4.9.17

Published by jeromelaban over 1 year ago

Uno Platform 4.9.17 brings two much requested features, as well as well as over 100 other improvements.

First, .NET developers can now reuse MediaPlayerElement across all supported platforms – iOS, Android, Web, Mac and Linux, in addition to, of course, Windows itself.

Second, we’ve added support for WebView2 for iOS, Android and Mac Catalyst.

Head to our blog post for more details about this release.

Community Shout Out

As always, thanks to our community contributors!

  • Documentation updates by @igiona, @darenm and @davidconoh
  • Tooltip fixes by @TopProgrammer77
  • AutosuggestBox fixes by @TopProgrammer77
  • DatePicker fixes by @TopProgrammer77
  • WebAssembly TextBlock inlines fixes by @TopProgrammer77
  • Skia Keyboard support updates by @ramezgerges
  • Skia Unicode symbols and emoji support by @workgroupengineering
  • CurrencyFormatter FormatDouble and ParseDouble by @workgroupengineering and @MohammadHadi2031
  • WebAssembly ListView recycling fixes by @roxk

Features

  • Resizing video for transport controls 5b4436f
  • wasm: Support ms-appdata for Image 4b48a50
  • Add extensibility support for Windows.Media.Playback.MediaPlayer 50cff71
  • Add missing MUX and Microsoft.Web generated APIs 34e34a4
  • Add support for Window.Title in Uno.WinUI 36a4a3b
  • Delaying paint until Activation 3819b16
  • Display Android Splash Screen until Window.Activate 4cd5c8a
  • Improve IconElement, include shared Grid c10c689
  • Initialize WindowManager asynchronously 09be506
  • Move OS theming logic to SystemThemeHelper b8e36a7
  • Support for FontIcon.MirroredWhenRightToLeft 7632d67
  • Support indexers in x:Bind 2612342
  • Wasm: Implement UIElement.ProtectedCursor 99d3078
  • initial implementation with basic playback capabilities 5786d73
  • Support CommunityToolkit.Mvvm in two way x:Bind 8ffc159
  • Support for UIElement.ActualOffset 76d72ab
  • svg: [Wasm] Add support for ms-appdata 8dd1e30
  • Add support for ExecuteScriptAsync on iOS/macOS 6da41f4
  • Apply themed background color to root visual fecbd42
  • Display WASM Splash Screen until Window.Activate 28628b0
  • Enabling net6 support for msal on ios/android 9780f82
  • ExecuteScriptAsync and InvokeScriptAsync on Android 8a9f504
  • Include full namespace for FrameworkPropertyMetadata in generated code 0df4900
  • Include MUX and Microsoft.Web namespaces in Uno.UI SyncGenerator c6cf258
  • Key CoreWebView2 event args, events 9b2d107
  • Move linked/shared messaging files into a new package feb2bb7
  • Support for DefaultTextForegroundThemeBrush 95324b5
  • Support for IconSourceElement 7188dd7
  • Support for WebMessageReceived on Android 8072ecc
  • Support for WebMessageReceived on iOS/macOS cb09425
  • Support more ComboBox visual states a89ab15
  • Support persistent bootstrapper loaders on WASM 39d44ee
  • CurrencyFormatter: Implement FormatDouble and ParseDouble d5616ad
  • nativehost: Add support the native view hosting 756f1ad
  • pointers: Fix pointer state not updated properly 33a38ea
  • Run: [Skia] Add support to Unicode Symbol and emoji 46ed691
  • update Cross Runtime Library template to WinUI / net7 5e3599f
  • Update to latest version of Uno.Fonts.Fluent 77df8a0
  • WebView: Support for IsScrollEnabled 3fbd8fb

Performance Improvements

  • Add Application bindings 9a3c97b
  • Add Clipboard bindings f201f48
  • Add CreateInstance binding 75f0bbc
  • Add DestroyInstance binding 6607df4
  • Add DisableFrameReporting binding 65ffab1
  • Add DispatcherCallback export b42f301
  • Add DisplayInformation bindings b7d0279
  • Add EnableFrameReporting binding 0f04f79
  • Add fast path when TextBlock has a single Run 036ebd3
  • Add FileOpenPicker bindings 2482244
  • Add FileSavePicker bindings 7dbddbc
  • Add FolderPicker bindings 1a2e00f
  • Add ForceFontUsage binding 2f3a3e8
  • Add GetAppMemoryUsage binding 0a109f5
  • Add GetBasicPropertiesAsync binding 131d4f8
  • Add GetBootTime binding 8309a5c
  • Add JSObject.Dispatch() export 753f368
  • Add LoadFont binding 57f4ce7
  • Add NativeReadStreamAdapter bindings 72bd34d
  • Add NativeWriteStreamAdapter bindings 1f6a53b
  • Add OnNativePointerEvent export bbdcc2b
  • Add RegisterNoOp binding f735d89
  • Add SetAnimationFramesInterval binding 5f06391
  • Add SetStartFrameDelay binding 8a39643
  • Add StorageFolder bindings 44e0b99
  • Add SystemFocusVisual bindings fbbccaf
  • Add WindowManager initialization exports 6e81972
  • Avoid native call to get parent while bubbling events 50cc2a3
  • Avoid rooting compilations in XamlFileGenerator 1773201
  • Avoid using Regex in AndroidResourceNameEncoder b15c12f
  • Fix few more occurrences of ToDisplayString f517a6a
  • GetWinUIThemeResourceUrl shouldn't format a string 8471381
  • Move some XAML generator caches to compilation-level 610ce31
  • Reduce dictionary lookups of repeated FindType call on the same XamlType 0b0d1af
  • Reduce string allocations in XamlFileParser fc64e72
  • Use StringBuilderBasedSourceText in DependencyObjectAvailabilityGenerator 31701d7
  • Use memoized FindType instead of SourceFindType 743c1f8
  • Animations: Marshal pointers instead of strings d51f099
  • WindowManager: Add CssSupports binding bf0276d
  • WindowManager: Add FindLaunchArguments binding 5152ab2
  • WindowManager: Add FocusView binding cd8db30
  • WindowManager: Add GetAttribute binding 9a46fda
  • WindowManager: Add GetProperty binding ca1be0a
  • WindowManager: Add RawPixelsToBase64EncodeImage binding 5991c93
  • WindowManager: Add ReleasePointerCapture binding aa423c3
  • WindowManager: Add SelectInputRange binding 3006ede
  • WindowManager: Add SetImageAsMonochrome binding aec6bcc
  • WindowManager: Add SetPointerCapture binding 6fc79f1
  • WindowManager: Add Window bindings 77e89ea
  • Address TODO regarding O(n) search 90c1dc5
  • Cache PreorderTree to avoid expensive enumeration d1610cd
  • Cache SKFont to avoid unnecessary allocations 3200437
  • Don't use LINQ in measure path b7ca706
  • Implement an alternative to ToDisplayString d58ecc2

Bug Fixes

  • [Android] fix android transformtovisual 02d2582
  • avoid calls to CGColorCreateSRGB before iOS13 cb4a983
  • Corrected sizing of videoView 1eee18d
  • dispatch setting of visibleboundspadding insets 3420cb5
  • Do not throw for already disposed callbacks ade95d8
  • FileStorage.CopyAsync should open target stream for write bf9db5a
  • Fix CalendarView selecting next day due to not respecting current time zone 014673d
  • Get video playing again 6b18dac
  • style + case diff between iOS and Mac API 53467fc
  • Transparency pixels 4134047
  • Update Uno.Fonts.Fluent to get latest glyph fixes 6a8960f
  • animation: anomalies when quickly transitioning between multiple VisualStates of same VSGroup 101606e
  • animation: not defaulting starting value from animated value 54a6d5d
  • AutoSuggestBox: fix Suggestion Item not being selected 498e536
  • CalendarView: CalendarView SelectedDates not working 1bab1ee
  • CalendarView: Fix CalendarView positioning of day's TextBlocks a4ddc83
  • CalendarView: fix the date selecting error by difference of timezone fffad38
  • ci: Ensure Uno.Foundation.Runtime.WebAssembly NET7 is published c336724
  • ComboBox: flyout placement in ios SheetPage af92831
  • droid: bringintoview for not visible items 5e0c4fe
  • droid: ScrollView Offset fc86ee6
  • ExportManager: Ensure Uno NET7 is used 1c22a28
  • Geolocator: Stop using location when unsubscribing from events. 22ee956
  • image: Don't update the image asynchronously to avoid showing intermediate visuals 27001a8
  • iOS: GetTransform allow controllers to be null 76e1bed
  • ItemsControl: desync from modifying ItemsSource of non-INCC/IObservableVector source 4cee87a
  • itemsRepeater: Fix regerssion that would prevent nested IR to render items after the first page if scrolling slowly 342b8a6
  • ListView: unnecessary SelectTemplate call on collection reset fab5c1c
  • lottie: Improved the loadeability of Lottie library on Wasm when running in Embedded context. 685ba37
  • pointers: [Skia] fix captured release to early when crossing bounds of the capturing element + invalid dispatch to a transformed elements e1a1929
  • pointers: Make sure to cleanup pointers state when an element is being recycled 027323b
  • progressing: prevent breaking change by internal interface b39a2d3
  • reg: Fix offset computation of native only elements 5630f84
  • reg: Fix pointer capture broken on Firefox ccb7a46
  • skia: UIElement.KeyDown firing twice per input ba79e98
  • ToolTip: fix an issue where the tooltip remains even when the button is pressed 35c9497
  • ToolTip: fix an issue where the tooltip remains even when the button is pressed cdf98ee
  • ToolTip: fix the namespace referencing error of virtual key. aa9a8c0
  • Add app.manifest to SamplesApps 27e318f
  • Add app.manifest to UWP-based templates 3db340c
  • Add missing app.manifest to old template cf8248b
  • Adding package metadata d40a8ba
  • Address Review 8148005
  • Adjust Border.Child replacement b26f1e2
  • Adjust Expander API to match WinUI aec2a15
  • Adjust for missing propsfile 5d0256e
  • Adjust full path property in netcore tests 22873d2
  • Adjust nullability of ApiExtensibility 715e676
  • Adjust transform on PopupPanel 886bc6d
  • Adjust vscode support d76fb34
  • Allow multiple reads of StorageFile 750e93a
  • always raise CoreWindow.KeyUp/Down 65fed34
  • ambiguity in KeyboardEvents sample f672f76
  • AppBar and CommandBar Uno Islands support 7ca5247
  • AppBar and Flyout base fixes for Uno Islands 5b0ca83
  • Avoid delay when hovering over SelectorItem with mouse 5f6c6b9
  • Avoid raising events when recycling TextBox, ToggleSwitch, and ToggleButton 0e1d70e
  • Call the correct FocusManager methods with options 6998e42
  • Change UseLegacyPrimaryLanguageOverride default value to true 7f992d3
  • Correctly run FullWindow tests in context of Uno Island 794ad25
  • Delay Activated and VisibilityChanged events until first manual activation 8afe9b1
  • Detect availability of localStorage before using it 4f9c17b
  • Don't propagate DataContext in PlacementTarget property 9727703
  • Enable When_VerifyEnabledXYKeyboardNavigation in Uno Islands 109a572
  • Ensure changes to ImmutableList are not processed in-place 3f6c5a2
  • Ensure imagebrush's source is updated when set a72afde
  • Ensure scroll is enabled by default on WebView 6673deb
  • Ensure theme is correctly applied to elements constructed before OnLaunched 70e7b19
  • Ensure theme is initialized before UI 69aaf2d
  • event ordering of KeyUp/KeyDown on Skia f79d1d6
  • Expander should be closed by default db48b4d
  • fill array 6a56be0
  • Fix arrange when setting BorderThickness with null brush 9779ed7
  • Fix ListView missing top elements when flinging #11809 b5d90b0, closes #11809
  • GetParentInternal should use VisualTreeHelper to get non-public parents too 63da018
  • Ignore pointer injection tests for Uno Islands bbd0da8
  • Make sure we add AndroidResouces before _ComputeAndroidResourcePaths is run f4dfbbe
  • No longer ignore ScrollOffset on ScrollViewer in TransformToVisual since they are at SCP level now 1aa0c5d
  • Popup and Flyout placement within Islands 7dc99f2
  • Prevent FontIcons from moving randomly 82d6e3d
  • Properly close flyouts in all XamlRoots 34776b4
  • Properly handle FocusManager focus directions 7a1e9fb
  • Properly layout AutoSuggestBox popup in Islands 13671ab
  • Remove bootstrapper splash override, apply same styling 1c554a2
  • Remove Fluent font .ttf from UWP NET6 template 29d93a9
  • Remove Fluent font .ttf from UWP template 756931c
  • Remove Uno Fluent font .ttf from old template d4721cf
  • Undo breaking change around WebErrorStatus ac0d2e9
  • Workaround jumping ScrollViewers on Skia 11408b3
  • android_scaling: Fixed the calculation of the pixel density on Android when running on device api >= 30 a89ec1d
  • animation: setting Local value should clear Animation value in filling state 11b753a
  • ContentPresenter: Avoid DataContext temporary reset 6c2d89a
  • hr: Adjust Page reload for custom frame presenter 89738d1
  • ios: LVI is sometimes clipped 07e14bc
  • ios_localization: The Windows.Globalization.ApplicationLanguages were not properly initialized on iOS with languages from the OS. e2cc633
  • itemsRepeater: IR might not re-subscribe to the EVPChanged event on load a632ee5
  • ListViewBase: Adjust indices repairing considering recursive list manipulation 33aeabf
  • reg: Android, do not clear pointer state if view is going to be re-used in same layouting pass f5d1a2e
  • TextBlock: [WASM] TextBlock.Inlines are not formatted correctly: spaces/blanks are removed #11418 b0acf88, closes #11418
  • TextBlock: [WASM] TextBlock.Inlines are not formatted correctly: spaces/blanks are removed #11418 886cbc5, closes #11418
  • Wasm: error CS0759: No defining declaration found for implementing declaration of partial method 'HtmlMediaPlayer.NativeMethods.setAttribute(nint, string, string)' 7980950
  • add permission and change exception 794b17d
  • add redirects 227284f
  • adding WinUI dependencies for windows target e8a445e
  • Adjust logic for Android TextBoxView selectability 4aad3e8
  • Ensure Commands are executed when RadioButton is toggled through AutomationPeer d5ac564
  • Fix a case where fuzzy matching was missing 53c77cd
  • Fix BitmapImage events not raised 5834545
  • Fix calendar header display first selected bale month instead of current 30f54fb
  • Fix CalendarView going into an infinite loop b593c43
  • Fix CameraCaptureUI on Android 11 and later c58969f
  • Fix ImageBrush not detecting changes of its ImageSource ae86a9d
  • Fix NRE in x:Bind 9e64ea8
  • Fix RandomAccessStreamReference.CreateFromUri crashing for ms-appdata Uri 83e2b15
  • Fix StorageFile.GetFileFromApplicationUriAsync crash when given appdata uri 1b193da
  • ListViewItem: multi-select check missing 6252bfa
  • reg: Fix null anotation 12175af
  • reg: Restore pointers on Android 1cad02f
  • Fix the Space/Blank missing error 0088cd7
  • Initialize PopupRoot on macOS 9403bf1
  • make the SpeechRecognizer ask before recognition a3c1c76
  • Properly propagate theme changes in Islands 272cdff
  • Properly resolve buildSplashScreen for new bootstrapper ed4bd1b
  • Properly set Application initialization type for Islands bd216e4
  • Raise OnWindowCreated after Application.Current is set df74a0d
  • remove usage of HashCode.Combine a64907e
  • Run ProgressRing test on UI thread 330d17f
  • Run VerifyFontFamilyForChevron on UI thread 3197ab4
  • Take stretch into account for RefreshContainer layout 8af07d0
  • Updating all refs to Microsoft.Identity.Client fc0b313
  • Use explicit XamlRoot for GetFocusedElement where possible 4a4d848
  • Use instance FocusManager methods in CommandBar d57e3e4
  • Use proper RootVisual for pointer up 8ee0d67
  • Use RotateTransform instead of AnimatedIcon in Expander 534b3b1
  • VisualCollection changes should influence IsRenderOrderDirty aa8b210
  • Workaround #11896 by making Expander chevron animation duration zero d49e7ae, closes #11896
  • JSObject: Marshal pointers instead of strings 56c0790
  • ProgressRing: IsIndeterminate property and (In)DeterminateSource behave now as expected. 5540eae
  • XAML Hot reload mishandling empty paths 8ccc3da
  • hr: Ensure that project reference paths are properly discovered 9d403a6
  • Make it possible to toggle IsReadOnly repeatedly 6544ea7
  • Remove WUX implemented MUX types from sync generator ee4d279
  • droid: BringIntoView blocked behind keyboard 1ac3abd
  • gtk: Reduce visual artifacts for clipped paths 539c0fb
  • ios: ListView not resizing as items change 4effe62
  • RepeatBehavior: parsing of iterationx and timespan syntaxes f637d08
  • Add missing CSS class for GTK TextBoxView a1b3e96
  • Align PrimaryLanguageOverride behavior with UWP a839b48
  • App deactivation should close only light dismiss popups 0fca14c
  • Enable ShouldWriteErrorOnInvalidXaml bd8d71a
  • treat uwp templates as solution templates 6107be2
  • update dotnet template names 60b0362
  • animation: droid dependent animation breaks after 1loop 1a5e722
  • AutoSuggestBox: Ensure correct text change Reason 04e452b
  • iOS: Monochromatic Image 3bf7bf8
  • itemsRepeater: IR not visible on intiial load might not materialize enough items 19714d4
  • ListView: Fix support of item re-ordering support of ICollectionView c92e1c5
  • mediaplayer: restore control and transport styles 22ed301
  • ProgressRing: Fix ProgressRing being vertically stretched 43eabdf
  • reg: Revert "remove GuardBand on GTK HW renderers to avoid visual glitches around clipping" e610716
  • templates: Don't include SupportedOSPlatformVersion for non-selected platforms 47a57fd
  • templates: Specify AndroidManifest correctly so that design-time builds don't fail 0346102
  • Avoid setting intial PasswordRevealState for plain TextBox a49023f
  • Don't use COM allocator aa5b7e0
  • Enable proper root visual initialization in unit tests 361b73b
  • Fix geometry code generation on Wasm bd1cc2d
  • Remove unintentional UnoQuickStart from templates 27f0d69
  • Reset stream position to zero before CloneStream returns 366d135
  • Retrieve ResourceLoader via constructor 3be270b
  • assets: Adjust support for transitive assets marked with a Link metadata b9fbda8
  • lottie: Ensure that opaque state is adjusted on any Loaded event f862e18
  • sourcegen: Restore proper component lookup string cf97865
  • xamlreader: Ensure adding properties on an explicit property reports an error c038beb
uno - 4.8.15

Published by jeromelaban over 1 year ago

We're excited to announce our second release for 2023, which includes over 200 fixes and product improvements, as well as support for .NET 8 Preview 2.

As promised, we've been hard at work on the improvements you requested in our 2023 Roadmap survey. One of the top requests was to make the startup experience with Uno Platform as seamless as possible. In response, we've introduced a new startup experience designed to make setting up new projects with Uno Platform easier and more flexible than ever before. The Uno Platform Templates wizard will guide you through setting up your project, allowing you to choose as many or as few pieces of Uno Platform as you desire. So, starting a new Uno Platform project is easier than ever moving forward!

As with every release we also spent significant effort in improving performance across all supported platforms. In addition to multiple in-memory and runtime performance improvements we are introducing OpenGL acceleration for Uno Islands, which are typically used in WPF modernization scenarios, showing 12x improvement over software rendering. In addition, TextBlock rendering for all Skia backends, showing 5x improvements in common scenarios.

Here are some additional noteworthy improvements:

  • ThemeShadow for iOS/Catalyst/Android
  • Shadows on Skia targets
  • Performance and memory improvements
    • Memory improvement in XAML SourceGenerator
    • Runtime performance and memory improvement in DependencyObject
    • Memory improvements in ItemsControl and ContentControl
  • GTK+Linux fixes for Ubuntu 23.04+ and Arch distributions

As always, a big shoutout to everyone who worked closely with our core contributor team to make this release possible:

  • Reliability fixes by @morning4coffe-dev
  • Documentation updates by @morning4coffe-dev, @mrlacey
  • Localization fixes by @igiona
  • Build updates by @workgroupengineering
  • VS Code updates by @kojo12228
  • Skia Shadows support by @VitezslavImrysek
  • Libinput fixes by @microhobby
  • Wasm fix by @mmarinchenko

Head to our blog post for additional details on this release!


Full Changelog

Features

  • Support for more Font properties in Skia Overlay TextBox e6976b1
  • renderTargetBitmap: [Skia] Add ability to use RenderTargetBitmap as Image.Source bfe33b7
  • Add feature flag for the layout cycle fix da44634
  • Add support for PropertySet, StringMap and ValueSet ed99e14
  • Add support for Scale property in CornerRadiusFilterConverter 089f344
  • Add support for ToolTip in Uno Islands 4b1328d
  • Add support for WPF OpenGL acceleration 5790368
  • Added support for shadows on SkiaSharp a7647ff
  • Basic implementation for HttpRequestMessage d032b36
  • Bump templates to use net7.0 by default adbc6a6
  • Bump UWPSyncGenerator version e39864e
  • Enable XAML Trimming by default 1a998ff
  • restore media player tests for winui 1f8ebfa
  • Support CameraCaptureUIMode.Video on Android 40ceeda
  • ThemeShadow support on Android bfaca1f
  • ThemeShadow support on iOS/macOS adfc824
  • Vector3 XAML conversion 54d65c5
  • Lamp: Support setting Brightness on Android 13 and later dd04f75
  • mediaplayer: Enable for WinUI, update to WinAppSDK 1.2 a1f25d5
  • xamlgen: Add support for debugging information, refactor BaseUri location fb3a55e
  • xamlparser: Adjust support for relative Uri parsing to enable contextual image loading 8b4c228

Performance Improvements

  • TextBox: Avoid unnecessary allocations 2e9cec7
  • Avoid calling ToString twice on the same StringBuilder c77884d
  • Avoid unnecessary TrimEnd call da8e8a4
  • DependencyObjectAvailabilityGenerator: Avoid calculating property names twice 60be919
  • Avoid holding into symbols 94cbbfe
  • avoid intermediate calls for Colors.FromInteger 7029a8b
  • Avoid unnecessary ToDisplayString 9d8abb9
  • Avoid using GetAllTypesAttributedWith eed1949
  • Don't allocate DependencyPropertyCallbackManager on disposal daf8cd3
  • Faster symbol lookup e065b53
  • Optimize LOH string allocations in Xaml generator 8d161db
  • do: Reduce CallbackManager allocations when no callbacks are registered 9aa78b5
  • dp: Reduce property search allocations 30fa159
  • Improve xaml generator performance cfe3418
  • Reduce allocations during inherited properties propagation b4e9159
  • Remove DisplayClass in DependencyProperty.GetMetadata() 168f528
  • remove reflection usage when parsing color names 89bda71
  • memory: Fix datacontext propagation on precedence level change 4f7300a
  • Remove string allocations from method Colors.FromArbg 5f28dde
  • WindowManager: Add SetPropertyNativeFast binding b080921

BREAKING CHANGES

  • winappsdk: This PR removes unavailable types and members from the WinUI variant of Uno. Those members were present in early versions of WinAppSDK, and are not implemented in Uno.
  • assets: The ms-appx:/// specifier for libraries introduced in Uno Platform 4.6 was incorrectly lower-casing the library name. This change now uses the original name used by the library, which is the AssemblyName property of the library hosting the assets.

Bug Fixes

  • Add missing CSS class for GTK TextBoxView 3cfdafd
  • Avoid setting intial PasswordRevealState for plain TextBox 9344aed
  • AdaptiveTrigger: AdaptiveTriggers precedence 05041e2
  • android: Rely on actual string comparison and not string reference 0d74cb3
  • ItemsControl: ContentControl at the DataTemplate root should keep bindings 6542c27
  • ItemsControl: Don't clear content on IsContainerFromTemplateRoot 7c9c6c2
  • ItemsControl: Ensure Content property is cleared when is not own container e9b3372
  • listView: Fix add/remove not able to re-use container 4e978a6
  • pointers: Pointers are not bubbling through list view on iOS f111ba3
  • targetBitmap: RenderTargetBitmap cannot be re-rendered on canvas on iOS and macOS 5298e1d
  • xamlreader: Ensure adding properties on an explicit property reports an error 83e5279
  • XamlReader: Apply static resources before evaluating element names 3481229
  • XamlReader: parsing of Rect type property f6adcb5
  • Add missing PRIResource in default library template 0068ec5
  • Add missing PRIResource in default template e8c03c2
  • Adjust support for single-instance generator 864a27e
  • Correctly default to "all files" in WPF FileOpenPicker 783c7b8
  • enable feature only for Android c9fccbe
  • Enable support for ContentDialog in Uno Islands 693c244
  • Failing Lamp PR 283bdd1
  • Fallback to fuzzy matching properly d9f53df
  • Fix case sensitivity of FontWeight 0beeb75
  • Fix ObjectDisposedException crash in Geolocator on Android 2af054e
  • Fix possible collection changed while enumerating in EVP propagation 5bc413a
  • Fix x:Bind code generation for statics 21d59b4
  • Fix XamlType lookup to correctly consider PreferredXamlNamespace 2b5fba8
  • GetCulturesHierarchy loop on invalid CultureInfo d3942bb
  • GTK TextBox selection 5efdac4
  • Handle UnoXamlHostBase end of app lifecycle gracefully 6a3b198
  • Properly check Lamp support f6d08bd
  • CameraCaptureUI: Fix crash on net6.0+ 239cc51
  • midi: Tentative for android recursion issue 643c498
  • tooltip: Adjust initial propagation of the DataContext 55c9d48
  • Add workaround for net7.0-android issue 2c8f90e
  • Address review 2a5c571
  • Avoid processing GTK events before dispatching 293c310
  • Avoid text modification after TextChanged is raised f5729d9, closes #6289
  • better comments e3d9e47
  • bump minimum macOS version for SampleApp c506cde
  • Disallow ComboBox popup under translucent status bar 391ae8e
  • Don't set UnoRemoteControlHost when running inside VS Windows 9851312
  • Ensure TextChanging is raised repeatedly when TextChanged handler modifies 7e4775c
  • Include System.Memory fix for Xamarin.iOS projects e203684
  • Position the AutoSuggestBox popup while taking the keyboard into account e1fbbe1
  • refresh Panel layout when size changes db521c7
  • Remove GuardBand on GTK HW renderers to avoid visual glitches around clipping b748563
  • Show an actionable error message on SDK mismatch ce24b5a
  • Use culture invariant float parsing 019bd9d
  • android: Ensure that DependencyObject.Parent is set when adding a control to its parent 5126310
  • appxaml: Adjust ability for arbitrary app class name bf06dd5
  • Binding: Adjust binding to indexer based on expression parameter 38e63af
  • ContentPresenter: Reset DataContext override on null Content 1e66781
  • deque: Fix memory leak on clear 2dda57b
  • gtk: Ensure that harfbuzz is eagerly loaded to avoid system versions interference 84b3ad6
  • ios: LVI layouting 16293bb
  • ItemsControl: Ensure containers are properly cleaned up in ItemsControl and ListView 528c4a1
  • ListView: ios lv snap rubber-banding e0b48e1
  • localization: avoid using deprecated property 94159ac
  • skia: Correctly handle SolidColorBrush opacity in inlines 8b05a85
  • templates: Update Microsoft.WindowsAppSDK in templates e3bb671
  • templates: Use UTF8 for template files a802808
  • VirtualizingPanel: Adjust for nullability constraints ac0858d
  • XamlGenerator: Ignore surrounding whitespace for LineBreak 0ddd93b
  • xamlhost: Ensure proper render surface initialization 0405a16
  • RecordAllTestsCommand 4f12c88
  • Remove DependenciesInitializer 37f8dbd
  • Restore ElevatedView support for WinAppSDK 1e1a003
  • Show error message when incompatible winappsdk to net7.0 with uno is found b0d55de
  • XamlReader: Ignore surrounding whitespace for LineBreak 2b40f26
  • restore midi enumeration sample 0f7e275
  • xaml: Ensure generator indempotence dcafe81
  • skia.gtk launch config to use .NET 7 f787bd4
  • wasm debug launch config to use chrome type 9a3ff9e
  • android: Workaround IntPtr.Size intrinsics on 32/64 bits differences 408e177
  • assets: Include transitive and nuget assets in publish output abec48d
  • assets: Use orginal library name casing for ms-appx:/// uri 73e0145
  • CalendarDatePicker: Correctly display the CalendarView 2af250d
  • css: Minor adjustment to make browser DevTools happier 613b7fe
  • dragdrop: [WASM] Fix support of D&D multiple files. 508a2b4
  • fonts: [Android] Adjust backward compatibilty for explicit AndroidAssets-included fonts 98acad0
  • fonts: [Wasm] Remove unused fonts sections 7ebe777
  • image: Fail with a descriptive error on relative Uri loading 30ffcda
  • iOS: Multiline TextBox with external keyboard f2c620f
  • itemsRepeater: Fix only first item visible when IR is out of range on load 08ec92e
  • NumberBox: Show full keyboard when AcceptsExpression is true f5db9a6
  • reg: Adjust lookup for symbol resources 0251233
  • reg: Update symbols after ms-appx:/// casing update 26ba9bb
  • resources: Resources loading from separate assemblies 2f7d09c
  • template: Adjust linux build support for mobile targets 2943e03
  • template: Move app.xaml.cs to shared "AppBase" 8291704
  • template: Move windows target to be first for intellisense 8105f98
  • templates: Fix Server project d1d8060
  • wasm: Implement InlineCollection.CopyTo d2f3c34
  • Disable appkit template creation until fixed in .NET 549d915
  • templates: reduce pre-requisites list for net7.0 c5acfa0
  • templates: Remove dead import conditions 9733b25
  • TextBox: Setting TextBox.Text to null should only throw in UWP da0d99e
  • WebView: Fix 'WebView.Source' being null when 'Navigate' is called 1a4c0fa
  • winappsdk: Run package diff on winui build 8e2bca0
  • [iOS] Possible layout cycle when a sub-child invalidate its layout while being arranged 8dafad7
  • Adjust not implemented error info in analyzers e3f5933
  • Mark LocalizationResources as auto-generated 8ef6a9b
  • System.IO.DirectoryNotFoundException looking for /dev/input 4b5ef3c
  • xamltrim: Adjust for best performance of XAML Trimming ba68450
uno - 4.7.37

Published by jeromelaban over 1 year ago

This is a service release for Uno 4.7, which includes fixes such as:

  • Updated migration steps for 4.6 and 4.7 (backport #11077)
  • .NET 7 Android AOT Fixes (backport #11063)
  • Templates adjustments with :
    • The introduction of App.cs and AppResources.xaml to give access to the class library (#11085)
    • Linux build fixes (#11078)
    • Intellisense fixes for VS 2022 (#11078)
    • Temporarily disabled AppKit template until upstream support is fixed (#11116)
  • Fixed transitive assets not included in dotnet publish output (backport #11057)
  • Single project targeting optimization documentation (#11126)

Full Changelog: https://github.com/unoplatform/uno/compare/4.7.30...4.7.37

uno - 4.7.30

Published by jeromelaban over 1 year ago

Our first release of 2023 is ready and brings over 230 new features and bug fixes, most notably introducing a new project template, improving performance across all platforms supported by Uno Platform and Shared Fonts.

Here are some highlights of the release:

  • An updated project template which uses a Class Library instead of a "Shared Project"
  • Support for Shared Fonts assets, which is removing platform specific steps
  • Support for ms-appx:/// Uris Images in library assets
  • Support for AppointmentStore (Android) by @pkar70
  • XAML Trimming improvements (e.g. 33% in the Calculator app)
  • Support for ISelectionRange
  • .NET 7 performance improvements with JSImport/JSExport
  • Markup extension in Style Setter
  • Readonly TextBox selection support
  • .NET Native AOT support for the Skia GTK and Framebuffer heads
  • Framebuffer fixes for 32 bits depths
  • Android interop performance improvements

More details can be found in our blog post!

See below for the complete changelog.


Features

  • fonts: Add support for fonts in Assets 67f91ec
  • fonts: Add support for symbols font uri override 026c7fc
  • notimplemented: Update error messages to include a link for not implemented APIs 2dc18e0
  • xamlgen: Add support for debugging information, refactor BaseUri location fb3a55e
  • xamlparser: Adjust support for relative Uri parsing to enable contextual image loading 8b4c228
  • Add AutoPtr/StructPtr to TSInteropMarshaller 553f390
  • Add linker attributes ee01391
  • Add platform tags for Linux and Cloud on Uno templates 55ee8d0
  • Add WinRT interop methods d6e9b26
  • Adhere to HorizontalOffset and VerticalOffset 3f687ab
  • Adjust metadata update agent for explicit updates afc258e
  • Android Calendar (AppointmentStore), with struct (for all platforms) d641eaf
  • Android Calendar, Reminder column a4b9c45
  • Annotate Accelerometer 7ec2bdf
  • Annotate Gyrometer 122744d
  • Annotate LightSensor d8ef246
  • Annotate Magnetometer 760d7b1
  • Branded Item Templates a9b79b9
  • Improve corner radius accuracy on Android dc358f2
  • Initial focus on ContentDialog 91cd6f1
  • Initialize runtime exports at startup 83f5da7
  • ISelectionRange 83867cb
  • Load Samples app Pages within Frame 913da44
  • NeedsFrame porperty for SampleAttribute eacb4a0
  • Preserve types conditionally 5d88cf7
  • RectangleClip 35a8e98
  • StorageFileHelper ca2f177
  • Support custom markup extension in Style Setter 95bca12
  • Support for TextBox and PasswordBox clipboard methods f42b59c
  • TextElement.XamlRoot f4fd1b5
  • droid: enable copy from readonly TextBox 85ba608
  • gtk: Add support for .NET Native AOT 8d9ff09
  • template: Move to single location projects 023502f
  • Warn when Window constructor is used in Uno Platform targets 221f061
  • droid: add property for native behaviour a8ed9ea
  • Use RectangleClip for rounded corner border 0f71961

Performance Improvements

  • Skia: Skip border shape creation with empty area, avoid generating border with empty thickness 0ed6b6f
  • trim: Allow for ExpandoObject and DynamicObject to be linked out base on non-uno uses 7165749
  • trimming: Break static dependency on FlyoutBase 006ec63
  • trimming: Remove duplicate resource files 4e10391
  • wasm: Enable trimming for external drag and drop 7dbab4f
  • WindowManager: Add ArrangeElement binding 927ab11
  • WindowManager: Add CreateContentNativeFast binding 406c5e2
  • WindowManager: Add DestroyViewNativeFast binding 31233d7
  • WindowManager: Add MeasureViewNativeFast binding 58bd823
  • WindowManager: Add SetAttributes binding 4089821
  • WindowManager: Add SetElementTransformNativeFast binding 89d6b2b
  • WindowManager: Add SetPointerEventsNativeFast binding 6c33537
  • WindowManager: Add SetStylesNativeFast binding 5b28b35
  • WindowManager: Add SetStyleString bindings 1088eee
  • WindowManager: Add SetVisibilityNativeFast binding 523230f
  • Accelerometer JSImport bindings cd0bf46
  • Adjust IsLayoutRequested interop on arrange b41bac4
  • Adjust RichTextBox, MenuFlyout and TextBox trimming a9d1394
  • Cache textblock static native properties 4fdef8c
  • Geolocator JSImport bindings f662939
  • ImplementedRoutedEvents evaluated at compile-time via a source generator f2b18d9
  • Misc linker hints updates e927734
  • Reduce allocations in RegisterCustomScheme 6ad7b7c
  • Reuse java strings instances in TextBlock 0164ed0
  • Reuse radii arrays c74ff5a
  • Specialized binding for BorderLayerRenderer.GetOverlayDrawable() e4e87de
  • Specialized binding for Brush.GetBackgroundDrawable() 0adc2ea
  • Specialized binding for UIElement.AdjustCornerRadius() 6d16f8a
  • use a ref inside the new array and reduce code size af90eb7
  • Use records instead of record structs for large SG models 026dfd9

Bug Fixes

  • assets: Use orginal library name casing for ms-appx:/// uri 73e0145
  • flyout: XamlRoot not implemented 2dbc661
  • fonts: [Android] Adjust backward compatibilty for explicit AndroidAssets-included fonts 98acad0
  • fonts: Adjust font loading for ms-appx resources from assemblies 88be67d
  • gen: generate less local variables c1c1a20
  • gtk: Add more descriptive message on initialization failure 58f5bf6
  • image: Fail with a descriptive error on relative Uri loading 30ffcda
  • metadata: restore metadata updates for net6 or greater 4349883
  • nuspec: Remove Mono.Cecil 5892a1e
  • reg: Adjust UnoHasLocalizationResources metadata dd3d179
  • reg: Include explicitly specified fonts in info.plist for backward compatibilty 9204b8f
  • reg: Update symbols after ms-appx:/// casing update 26ba9bb
  • remotecontrol: Don't fail on multi-targeted projacts loading 634febb
  • remotecontrol: Don't force InterdemediateOutputPath for metadata updates ddf9c1b
  • remotecontrol: Ensure generators run after a referenced project file update db174a8
  • remotecontrol: Explicitly await all connection tasks to avoid unobserved tasks exceptions 65dee61
  • added not implemented method for Win and UWP d2a1d65
  • cleaned code 449f6cc
  • document uno.ui/uno.winui conflicts 8423f0a
  • identation 47fd961
  • included implementation for UWP/WinAppSDK and updated docs f5b36e3
  • Invisible invalid char c722537
  • moved helper to UI.Toolkit project 65043da
  • Native popup panel positioning on iOS ed00261
  • remotecontrol: Observe changes on ProjectReferences during HR sessions 0b5a801
  • resw: Adjust resources resolution for project references 7cb9abd
  • template: Adjust default language for Windows head 0efd543
  • template: Ensure x86, x64, arm64 windows head is deployable by default 2c1e21c
  • winui: Adjust WinUI build 7ff5cef
  • Adjust for 17.5 Preview 2 additional obsolete members on iOS a9dcd75
  • Avoid deflating layout slot rect by border thickness twice dd3631e
  • EffectiveViewport does not goes through native only elements 55205be
  • LayoutSlotWithMarginsAndAlignments is not correct on WASM due to BorderThickness 1bd2555
  • Remove incorrect UnoRuntimeIdentifier value 116ab96
  • Remove some duplicated namespaces e2da443
  • Remove unused generated code fb00901
  • trimming: Disable XAML trimming on mono+OSX/Linux 0442a1a
  • Pack analyzers in analyzers/dotnet/cs ba806d1
  • Remove unsupported TFMs from WinUI package 800b18d
  • removed redundant code and small refactors 8f794c0
  • renamed AssetsManager internal member 80f7974
  • Restore ProgressRing.xaml a4bbd3a
  • Set XamlRoot on Popup if not set for Uno.UI bce4b14
  • skia target a79184a
  • Support for custom markup extension in VisualState Setter eb0f7e9
  • CI: TakeScreenshot on Android b026c4b
  • templates: Only build net6.0-windows10.0.18362 on Windows 55cabb4
  • uap: Fix generators should not run under uap builds 26c6772
  • ToolTip not styled correctly 1d3473c
  • updated compiler directive for windows implementation 27015f6
  • Use executing assembly path for InstalledPath on Skia 72de4e3
  • animation: forever animation not repeating from default value 5f3ea8e
  • dependencyobject: Clear binding on ClearValue 9b2f394
  • dispatcherqueue: Use proper CheckThreadAccess/HasThreadAccess behavior 7aa064d
  • DispatcherQueueTimer: [Wasm] Ensure ticks are raised on the dispatcher c7f011a
  • dotnetnew: Adjust Server template compilation conditionals 1671dcd
  • embeddedresources: Restore proper AssignTargetPaths/AssignLinkMetadata for EmbeddedResource LogicalName metadata 1cb346c
  • framebuffer: Restore 32 bits color format 533ecf0
  • ios: animation stopped when app resumes from background 8e06564
  • perf: Don't include pdbs by default for xamarin targets in nuspec 1802e9d
  • reg: Add missing embedded resource in vsix 2022 f29240c
  • reg: Add missing generic and server projects to mac filter d6e2a96
  • reg: Adjust dotnet new unoapp parameters 093f3f5
  • reg: Adjust for XAML Trimming cross-runtime libraries build before Uno 4.6 e83fa35
  • reg: don't raise XA0101 72286c3
  • reg: Remove duplicate font asset fbe4ab6
  • reg: Restore multi-folder project structure a6ef125
  • reg: restore xaml trimming for net5 or below d537147
  • SetStyleString: Add missing parameter 0944535
  • Skia: Initialize DisplayBlock text in TextBoxView 80a2ac1
  • xamlreader: Process members on top-level resource dicitonaries 732d001
  • XamlReader: Fix invalid Windows.UI lookups c840727
  • Add partial keyword to CustomControl.cs at TemplateControl 5a6fb00
  • added caching for Android and Wasm assets 64dc566
  • added compilation constraint for netstd f0d06da
  • Attempt to fix possible crash when using GCColor 7a9c89e
  • Avoid creation of unholded ref of CGColor fdd52d9
  • ci targets for MacOS and broken skia reference 7856037
  • Ensure clipping when corner radius is set 5da0fad
  • Android: Correctly report network connectivity on VPN 0168e97
  • flyout: Adjust DataContext propagation d7217c2
  • metadataupdate: Use latest roslyn for net7 21dd5b5
  • rc: use net7 binaries with net7 project 33415a8
  • reg: adjust for C# preview support 032599d
  • reg: Don't use shadow parameters for C# 7.3 1c5de88
  • address review 32e610d
  • Address review 7c9d72e
  • Adjust dotnet new uno app description 503d315
  • Ensure flyout Opening and Closing cancellation works fb17e25
  • Revert "chore: Ensure that Uno.Samples.UITest.Generator build before SamplesApp.Droid when build from IDE" b636511
  • android: Ensure ApiInformation is initialized early enough e3b0e87
  • android: Ensure memory manager values are updated properly 02b0712
  • AutoSuggestBox: Correctly report chosen suggestion on item click b745b96
  • dp: Don't keep a strong reference to the last local value c63817e
  • droid: LV oscillating snapping c0bcd4e
  • ListView: fe item removal cleanup 867b4c6
  • lottie: Lottie animation using ms-appx source fails to manually start be63194
  • MenuFlyoutItem: synchronize can execute on loaded bb7f2bc
  • reg: Adjust generation for missing x:Class 1bc71c6
  • reg: Adjust hot reload generation for C# 7.3 d110eda
  • reg: don't dispose AssemblyDefinition on mono, it may crash d133c05
  • reg: Don't use C# 8.0 lambda parameter shadowing for xamarin projects 3d45ec0
  • reg: Metadata update is optional below net6 for skia targets 8950100
  • resources: Adjust XamlReader to use XamlScope and resolve visual parent resources 33bca7c
  • resources: Use visual parent search for style setters and visual states ea30cd3
  • Skia: Unset Image when Source becomes null 30a2fa3
  • SV: snapping issues bf4843c
  • templates: Have MacCatalyst apps logs just like macOS apps do 6aa4051
  • uap: Fix generators should not run under uap library builds 0a0f1b5
  • xamlreader: Support for geometry parsing 6c1b45d
  • xamlreader: Support for geometry parsing 0e47e8a
  • xamltrim: Trim trop-level ControlTemplate as resource key 2427d28
  • Adjust border and shape positioning and clipping b72499c
  • adjust component naming generation for mono capabilities 50feeb0
  • Adjust corner-radius border rendering on Skia f9a6eb6
  • Adjust for browserload updates when changes types are not available 8f3a57d
  • Adjust name of web app manifest, include app icons as Content 28c560f
  • Adjust rendering area after layout rounding 5d56a5c
  • Adjust rendering on Android for StrokeThickness bf6a30c
  • Adjust support for x:Bind edition 5d1de36
  • Adjust template rewriting for versioning 89eba2c
  • Avoid memory leaks in AnimatedIcon bf1266b
  • avoid NRE when DOTNET_MODIFIABLE_ASSEMBLIES is not set b1c44f6
  • BreadcrumbBar with items leaks 7c06945
  • Capture focus for button-only dialogs 5df0ae0
  • Created a partial class per platform e3bd829
  • don't reset runinfos on full builds as generations are no longer ignored e006082
  • Emit UTF-8 BOM when converting sources c60adbf
  • Ensure Flyout.Opening is executed before MenuFlyout processing 060536c
  • Ensure Holder counter is reset between individual leak tests b261241
  • Ensure Measure/Arrange of panel when popup offset changes eb2706b
  • Expander memory leaks bef4894
  • Fix condition to use SDK linker when appropriate 3d55400
  • Fix NotImplemented attribute platforms for RenderTargetBitmap 6e0190e
  • Fix SDK linker path when building inside VS 653fa60
  • Fixed PR comments 8e60f99
  • ignore case when comparing environment variable 607da54
  • included compiler directive to avoid compiler issues on WinAppSdk based targets b911d5f
  • incomplete mehtod signature 5e093a0
  • Increase HighMemoryThreshold for Samples app 7719e11
  • List .NET 7 mobile targets in crosstargeting sample 04c4487
  • missed xml comments and renamed main method 47c559d
  • missing 'method' word in docs 009e865
  • pr comments e39d486
  • SamplesApp.netcoremobile build 6de329e
  • SelectorItem should get focus on pointer release, not press ef4331f
  • TextBox focus leak on GTK 4e86e09
  • TextBox focus leak on WPF 709b22f
  • There is a circular dependency 045a77a
  • Uno Item Template improvements dadb0ae
  • Unwrap TargetInvocationException 16f71bf
  • updated doc comments 584cb5d
  • updated tests and docs for FileStorage Api de34bcb
  • wrong parameter in xml doc 0283d1d
  • XamlRoot propagation in Flyout and ToolTip 18a0b9a
  • assets: Align target path using platform's separator f4faded
  • iOS: allow selection TextBox readonly 41ab934
  • iOS: text selection on readonly MultiLine TextBox 62e4ffe
  • iOS: TextBox delegate order validation 7df64d7
  • reg: Adjust winappsdk references cleanup d8ad97f
  • reg: Don't use TargetPlatformIdentifier a9c8235
  • reg: Remove invalid removal of uno.ui files when building with WinAppSDK. 990acd3
  • reg: Restore location of the globs tempalte file 40eef9c
  • reg: Restore property nuspec targets files 0a5c249
  • reg: Typo in nuspec for XamlHost net7 049a0a8
  • skia: Apply proper font fallback on invalid font fe12216
  • skia: support inline rendering for constrained measure size b9e191e
  • vsix: Adjust bootstrapper and AppDesignFolder 93081a3
  • wasm: Adjust _UnoWasmContentAdjust transitive assets copy 6b9b243
  • winappsdk: Ensure that only the ui.toolkit assemby is referenced 5cd29ea
  • Distribute corner radius fairly along each side of an element a5ce5f3
  • Ensure border thickness is used for both outer and inner corners on Skia ff27c65
  • Pass unimplemented platforms to attribute bd1230d

BREAKING CHANGES

  • assets: The ms-appx:/// specifier for libraries introduced in Uno Platform 4.6 was incorrectly lower-casing the library name. This change now uses the original name used by the library, which is the AssemblyName property of the library hosting the assets.
uno - 4.6.19

Published by jeromelaban almost 2 years ago

Today we are announcing support for .NET 7. Our sixth release of 2022 is a huge step towards creating the most productive platform for building .NET-based applications which run everywhere.

For more about the highlights, such as core .NET 7 support, Library Assets, SVG Support, Android 13, the new WebAssembly Bootstrap 7.0 and ASP.NET Core Hosting Project, head to our blog post!

Community Shout Out!

Our contributor community just passed 400 contributors across all our repositories – be it the core UI one, documentation, or gallery.

Here are some of our contributor's updates:

  • @SeanKilleen for the automated spell checking of markdown documentation
  • @blouflashdb for template updates
  • @pkar70 for the PhoneCallHistory implementation for Android
  • @seanocali for the support of CustomResource in XamlReader
  • @workgroupengineering for source generation project cleanup
  • @topperdel, @IrvinDominin, @peterfoot for documentation updates

Big shout out to all our new contributors who came during our Hacktoberfest initiative, helping make our Gallery loaded up with new samples.

Features

  • assets: Adds support for content assets in NuGet and transive project refs (c39af78)
  • Template: Add manifest.json to WASM template (9b802c5)
  • Template: Make manifest.json optional (572c991)
  • xBind: Enhanced support for x:Bind casting expressions (4521b63)
  • Add support for attached properties localization (e726e39)
  • Add support for VSIX .NET framework selection (f38716d)
  • Default to C# latest on UWP app solution template (ad708aa)
  • WASM: NativeOrientation property support (83382c3)
  • Add documentation for LightSensor (9cf7986)
  • Add UI Test template for VSIX (7ca050b)
  • Aligned icon font (c412d01)
  • Automatic docs spell-checking and associated fixes (1ba4d9a)
  • Build for wasm/skia net7 (7e899a2)
  • CallLog implementation for Android (023a029)
  • ElevatedView unification on Android (ccf296c)
  • ElevatedView WASM unification (ebed703)
  • Port ColorPicker.Orientation feature from WinUI (738facc)
  • Support for SelectionHihglightColor on Skia (890f2d4)
  • Support for SVG rasterization (c8bce1c)
  • Support scaled logo asset as icon on Skia (e3aa7fb)
  • SVG rendering on iOS and macOS (3610d08)
  • SVG support on Android (82c0ccc)
  • SVG vector rendering on on Skia (bb941b7)
  • hosting: Add support for ASP.NET Core hosted WebAssembly app (ca382fc)
  • TextBox: Android selection and placeholder color (14854a7)
  • TextBox: iOS selection and placeholder color (e1494e2)
  • TextBox: WASM selection and placeholder color (3d07dba)
  • WASM: Support setting the screen orientation (43bed26)
  • xbind: Add pathless casting support (21f12bc)
  • xBind: Add attached properties path support (290a52c)
  • Mark SelectionHighlightColor implemented on PasswordBox (9bad3e0)
  • Support for CoreApplication.Exit and Exiting (dfbaf17)
  • XamlSourceGenerator tracing (aaa3a41)
  • xamlreader: Support CustomResource (c9d011c)

Bug Fixes

  • MenuBarItem: Removed invalid cast (4370f0f)
  • add markdown code fence by request (0c09220)
  • Adjust image scale logic to fallback to higher DPIs if lower not available (88af9bc)
  • Ensure proper error reporting when a WinAppSDK project references Uno (d92eb5f)
  • Ensure reusability of ImageSource (6b08dd7)
  • Ensure ShowAsync returns if popup is forcibly closed (368f496)
  • Ensure Xamarin.iOS target is deployable when Mac Host is connected (fce6773)
  • Hide invalid HTML img elements (e8547ec)
  • Make horizontal scrolling in RefreshContainer on Android more reliable (1774a3a)
  • Nullable build errors on iOS (bd336e7)
  • Reference Bootstrap.Server package for Server project (0297d51)
  • remove unnecessary inline code snippet (e9a7389)
  • slnf referencing non-existing project (7cb2be0)
  • BindableTypeProvidersGenerator: Generate suppressions (67dbdba)
  • ContentDialog: Handle back button being pressed (17633b7)
  • DependencyObjectGenerator: Handle nested classes properly (d0b2734)
  • dotnetnew: Align WinUI templates to use the same as the VSIX (079b755)
  • dotnetnew: Ensure Wasm and Skia runtime libraries are using the same name (2bedb82)
  • localization: Fix type conversion on attached property implicit localization (67b7e91)
  • logger: Ensure thread safety of LoggerFactory (6b563a6)
  • SamplesApp: Favorites list loading (419483a)
  • wasm: Adjust TS compiler dependency on CompileTypeScriptWithTSConfig (ab0e1d8)
  • XamlGen: Handle base type not specified in code-behind (8af10a0)
  • xBind: Adjust FallbackValue behavior to explicitly support setting null to the target (c1f8c19)
  • Avoid null-ref, fallback to VisibleBounds is XamlRoot is null (b4ac3eb)
  • Ensure Window.Current is set when Window is newed up (f3b9235)
  • Update nuget.config for solution templates (81591eb)
  • Wrong sample-code for Sharing stuff (01b3a96), closes #490
  • gen: Report error diagnostic on SnapShotTestGenerator exceptions (4a0580d)
  • ios: nested page's CommandBar desync when returning from controller (2aa5f13)
  • Adjust for net6/7 debugging in VS 2022 17.4 Preview 1 (49f43f1)
  • Avoid WebKit autofill highlighting (56e2c69)
  • Ensure PermissionsHelper does not crash with multiple subsequent requests (bac7024)
  • Foreground on multi-line GTK input (ae7bc0f)
  • invalid xml syntax in crosstargeting_override.props.sample (3313fe3)
  • Parse cultures from last to first (15549d5)
  • iOS: ListView empty items when scrolling (3dbf531)
  • StorageFile: StorageFile return path without content provider (98ede47)
  • VisibleBoundsPadding: Ensure the proper root is used to compute relative bounds (1787456)
  • Remove WPF issue #6792 workaround (0ed43a0)
  • fluent: Adjust ToggleButton invalid visual state (5bee1f4)
  • skia: Ensure that visuals rendering happens in the correct order (6bc192e)
  • Avoid build error due to Append(string) (9fce409)
  • Ensure CurrentUICulture is not set to invariant culture in Skia (0a65bed)
  • Fix infinite recursion in CalendarView (21a86de)
  • TextBox.Foreground setting on Skia GTK (9b49305)
  • gtk: Align validation surface to the OpenGLRender surface version (c62d6b7)
  • vsix: Adjust net6 templates to avoid defining default RuntimeIdentifier (62444fc)
  • Adjust DataContext propagation to ToolTip (f4d3264)
  • Avoid throwing in DependencyObjectGenerator when using Roslyn (5a38c9e)
  • Don't use static storage for errors on invalid properties (0200ffe)
  • Properly scale shadow on Android (5c5f6b4)
  • gtk: Fallback on software rendering when GL Context is not available (9c2de10)
  • gtk: Pre-validate OpenGL support to avoid initializing on macOS (4a1b8ab)
  • gtk: Show an error message when GL_ARB_vertex_array_object is not available (3e7c6ef)
  • NativeFramePresenter: Create Page instances at time of insertion into the Frame.BackStack (dd618c6)
  • vsix: vsix framebuffer template missing namespaces (f91738a)
  • Wasm: Fix BorderRadius not rendering properly when it's greater than half of width or height (5c2458c)
  • xaml: binding option value type being ignored (89cc6e6)
  • xamlreader: Providing an empty to a .Resources element in XAML were crashing the XamlReader with a NullRef exception. (56cf21a)
  • Adjust vsmac solution filter to include the mobile head (0b4717a)
  • Attempt to fix PasswordBox on WPF (6d3758a)
  • Don't run linker hints tasks in process, don't run on design-time or skipped builds (ae9dae8)
  • Generated javascript content is not embedded at the right place (9e81728)
  • Quit app correctly on GTK (15572f3), closes #9994
  • RefreshContainer content arrange (e7615f3)
  • remove vs17 specific use of [MSBuild]::VersionGreaterThan (5304555)
  • Gtk: Match TextBox caret color with foreground color (aa7e589)
  • Warnings NU1504 The duplicate 'PackageReference' items are: Xamarin.Build.Download 0.11.3 (ef9d8fb)
  • Wasm: Fix DoubleTapped not firing with touch (f64ec9f)

Performance Improvements

  • Avoid unnecessary SetStyle call for TextBox (ee371ac)

  • Avoid unnecessary reloads for same SVG source on Skia (60e1803)

  • Cache GetScaledPath results to avoid repeated querying for identical images (1008432)

  • Cache resource keys of resw (2befbd7)

  • Cache XAML parsing (67d6e9c)

  • Don't copy roslyn binaries to the output to enable VBCSCompiler hosted builds (fa4d988)

  • Enable CA1815 (override Equals on value types) (4ec5891)

  • Enable Roslyn-based generators for internal Uno-Skia build (737940d)

  • Enhance lookups in FindSubElementByName (fcc798c)

  • Improve ILLink.Substitutions.xml merge speed in specific scenarios (dca516d)

  • Improve performance (e43443c)

  • Make SamplesListGenerator an incremental generator (d2e71c5)

  • Misc performance improvements for generators (d0ce901)

  • Move DependencyPropertyGenerator to be incremental (ca23880)

  • Reduce memory allocations when parsing XAML files (3f9738e)

  • Reduce string allocations in GetFullMetadataNameForFileName (0997264)

  • Remove resource files generation from library builds (7302413)

  • Separate internal generators into own project (0fb85ec)

  • Set selection highlight as a single operation (9b648af)

  • Use GetXXWithName for members lookups (1ca05f4)

  • Use hash set for resource key lookup (dd578cf)

  • feat!: Add Android SDK 13.0 support, remove Android SDK 11.0 (199190a)

BREAKING CHANGES

  • BaseActivity.PrepareOptionsPanel is now removed as support has been removed by Android. Use PreparePanel instead.
uno - 4.5.9

Published by jeromelaban about 2 years ago

The fifth release of 2022 brings innovation across all pillars of Uno Platform: UI, Toolkit, Extensions and Tooling.

In the process of this release, we implemented 230 features and bug fixes, as well as welcomed 4 new contributors to our open-source project. Thank you! For those of you who just want to jump into it, please update your Uno Platform NuGet package to the latest.

It’s a massive release, so for those who are in the rush, here is the TL;DR version: We added:

  • A major new feature - Uno Islands to help you modernize apps
  • Increased the breadth of our existing Linux support
  • Six new or refactored WinUI controls and brand new pull-to-refresh
  • Super easy way to Authenticate users with MSAL, OIDC, Web and Custom authentication providers via Uno.Extensions
  • Boosted Reactive extension
  • Added SafeArea, Input, Status Bar, Input, Control, TabBarItem Extensions and Badge support as part of Uno Toolkit
  • Released Preview 3 of our Uno Platform for Figma add-in with more customization options and performance updates.

Community Shout Out!

We wouldn’t be able to do what we do without the help from our great community – filing bugs and issues, and also helping with the core project by submitting Pull Requests. Our contributor community is now over 230 developers strong, and we just passed 7,000 stars on Git Hub, and passed 2,000,000 downloads on NuGet. Thank You.

Special Shout out for 4.5 release goes to Giuseppe Lippolis (AKA @workgroupengineering) for contributing a fix for RenderTargetBitmap, InMemoryRandomAccessStream, and a variety of quality of life updates.
Thank you to all the other contributors:

  • Support for testing generators with diagnostics, compatibility with other source generators (@havendv)
  • Documentation updates (@rarisma, @linkdotnet, @miyanni, @DavidPerikala)
  • DataWriter.StoreAsync (@rafaelrmoukc)

For more details about this release, head to our blog post.

Full release notes

Features

  • (iOS) Add enable corewindows events 7e98596
  • (iOS) Add expose Raise Events 384a94b
  • (iOS) Add KeyEvents Support MacCatalyst c6a8db8
  • (iOS) Add VirtualKey mapper 036f856
  • (maccatalyst) add keyup event support d63624b
  • (maccatalyst) bubble up key events to focused element 9ca702b
  • Add DataWriter.StoreAsync 331b8a9
  • Add GetPatternCore support for ButtonAutomationPeer 24f2d76
  • Add missing Acrylic brushes without WinUI 2.6 styles 6c3aa64
  • Add missing StaticResourceExtensions for VS intellisense 3af3e11
  • Add refresh indication support for non-mobile platforms 7aeee51
  • Add support for FrameBuffer DPI and scale computation e59df85
  • Add support for StaticResource loading inside a ResourceDictiomary e05bd32
  • Add the ability to define #pragma warning disable in generated code 9323607
  • Add the ability to disable _knownMissingTypes validation a783600
  • Add Windows.UI.Xaml.Hosting API contract 530c15f
  • Allow Android native visualizer theming d7494e5
  • Allow iOS native visualizer theming c3f46c1
  • Basic RefreshContainer on Android 78f88df
  • Basic RefreshContainer on iOS 9641599
  • Basic support for DesktopWindowXamlSource c8ce703
  • BitmapEncoder a194583
  • Find associated VisualTree and XamlRoot for multiple roots 6c09f4b
  • Handling full uri as callbackuri for ios/macos f6deb9e
  • Implement analyzer for deprecated WasmHttpHandler a211ce3
  • Improve automatic OpenGL/ES detection f614a88
  • Include repository path in Samples app title bar e5076f8
  • InMemoryRandomAccessStream e7743ab
  • Marking additional Markup interfaces as implemented 2dd5612
  • Port RefreshInfoProviderAdapter 4e7c22c
  • RefreshInfoProviders d513257
  • RefreshVisualizer 50d2f75
  • RenderTargetBitmap ba33ee0
  • Resolve managed path and use weak reference pooling for FontFamily.Loader.wasm f3ed46a
  • Skia WPF Runtime Tests and Snapshot Tests ecbac16
  • SoftwareBitmap 69a824c
  • Support for multiple XamlRoots 09764b2
  • Text input support in Uno Islands 786017b
  • Uno.UI.XamlHost deead11
  • UnoXamlHost for Uno Islands 12dffe8
  • Update InfoBar to latest MUX e9c6f29
  • Update Skia slnf with Xaml Islands projects c0304a3
  • Use dotnet SDK linker when available c20e368
  • Use NameProperty in Skia and WASM b33cda1
  • droid: ListView smooth scrolling 762c5e2
  • FrameBuffer: Add RGB565 color depth support e6e79e8
  • InMemoryRandomAccessStream: Implemented ReadAsync, WriteAsync, GetInputStreamAt, GetOutputStreamAt da2699c
  • mobile: use animation for LVB.ScrollIntoView a352416
  • IRefreshInfoProviderAdapter support b42106c
  • Targets with constants moved to an earlier stage. c73cb49
  • Updating WAB for Android CustomTabs 09102ea
  • Use in-app screenshots for android cdaeda4
  • WASM Font Preloading Support e869192
  • xaml: add support for raw numerical enum values 8723bed
  • XamlReader: Add support for ThemeResources and MergedDictionaries 7785828
  • WinUI Breadcrumb f379841
  • WinUI BreadcrumbBar 272a1d3
  • WinUI PipsPager 99305a4
  • WinUI RefreshContainer e88ca39
  • WinUI Slider / RangeBase / Thumb / TickBar 40e236f
  • Android: Allows for images to be read using GetFileFromApplicationUri. 5f76bc2
  • TextBlock: [Skia] Add hyperlink hit testing b0cac68
  • TextBlock: [Skia] Add support for TextAlignment.Justify and CharacterSpacing 80ca410
  • Xaml Island root 601a208

BREAKING CHANGES

  • Changing Time of TimePickerFlyout from UI doesn't preserve existing days, seconds, and milliseconds. To get the legacy behavior back, set FeatureConfiguration.TimePickerFlyout.UseLegacyTimeSetting to true.

  • On iOS, when running under the iOS Simulator, the MtouchExtraArgs property must include --registrar=static or the runtime will fail with the following message:

    Don't know how to marshal a return value of type 'System.IntPtr'.
    

    This validation can be disabled by setting the MSBuild property:

    <PropertyGroup>
       <UnoDisableValidateIOSStaticRegistrar>true</UnoDisableValidateIOSStaticRegistrar>
    </PropertyGroup>
    

    See https://github.com/unoplatform/uno/issues/9430 for more details.

  • Native popups on Android were frequently causing problems with more complex controls like AutoSuggestBox and MenuBar. To aleviate these problems we are switching to use the unified managed popups everywhere instead. This may be breaking apps which depend on the native popups logic or layout.

  • This update adjust the name of android drawables, in order to have full path disambiguation. This also means that actual resource names now will be separated by "_" in place of the folder hierarchy. This is generally not a problem is the files are read using ImageSource.

Performance Improvements

  • Avoid Regex for indentation when possible 693c085

  • Enable CA1821 (Remove empty finalizers) 3669fee

  • Enable LINQ-related performance analyzers 6ae0751

  • Enable NetAnalyzers performance analyzers 5ebb6d9

  • Use .ContainsKey instead of .Keys.Contains (CA1841) 708d286

  • iOSmacOS: calls getter too many times 9891407

  • iOSmacOS: Reduce nfloat / float / double conversions 4c2e8c2

  • iOSmacOS: Simplify MeasureOverride and ArrangeOverride 707c5db

  • macOS: Avoid calling NSView.Layer getter more than once / method 3ced78d

  • macOS: Call Bounds propety only once inside FrameworkElement.Layout 02e629e

  • feat!: Implement TimePicker's SelectedTime/TimeChanged/SelectedTimeChanged 1563a5b

  • feat!: Stop using Android native popups by default d7dee36

  • fix(android)!: Retarget Android assets with path names d4308f1

Bug Fixes

  • AutoSuggestBox: Close suggestion list on losing focus 0da0671
  • gtk: [Linux] Ensure that missing libGLESv2.so does not break the runtime 5c61eeb
  • GtkHost: move window title assignment after App is initialized. 1e5fa80
  • pointers: Do not simulte enter/exit for "touch as mouse" on skia 7a3a090
  • pointers: Fix touch support on some specific skia devices (e.g. RPI) ace611f
  • SamplesApp: warning XA4216: AndroidManifest.xml //uses-sdk/@android:minSdkVersion '16' is less than API-19 1b1a2d1
  • skia: Fail safe on invariant culture c08b512
  • ToggleSwitch: add workaround for visual states 9078f8b
  • WaitForUnlockedFile: Break if we can acquire exclusive lock on file d026090
  • wasm: Expose FontFamilyHelper through Uno.UI.Runtime.WebAssembly 7ed2ae9
  • wasm: Invalidate TextBlock measure cache when a font successfully loaded f49af2a
  • Allow setting Selector.SelectedIndex value before it is valid when items are empty 232651d
  • Apply review c8ca870
  • Avoid refreshing Android RefreshContainer when not on top cc5fb7d
  • case-insensitive linker ref paths 8c5b0a6
  • Clip desired size to MaxWidth and MaxHeight ae2076f
  • ContentPresenter content alignment 5bf7a3c
  • Disable merging in uno debug builds, exclude Java.Interop for linking issues 4bf84f5
  • Don't fail on missing _AndroidApiLevel for min API level validation 2c26ef8
  • Ensure static registrar is enabled when the iOS simulator is used 5a76347
  • Ensure unloading and reloading RefreshContainer retains refresh-ability 3d7ffa5
  • Fix FontWeights.SemiLight and minor refactoring 2900ba4
  • Fix NotImplemented for IsTextSelectionEnabled in Wasm 8830db7
  • Fix DependencyObjectGenerator for global namespaces and WPF head 0b533b8
  • Fix parsing literals in Span, Paragraph, .. 703c073
  • Fix TextBox visibility not taking effect 166f976
  • Fix Uno.Analyzers assembly version by moving to SDK-style 8845cc8
  • Generate csharp suppressions in GlobalStaticResources.cs fcffa49
  • IndexOutOfRangeException ExpectedPixels.Pixels(_Bitmap) 7ba0bd9
  • Mark 'ExperimentalAttribute' as implemented 0b06782
  • NETSDK1080 A PackageReference to Microsoft.AspNetCore.App is not necessary when targeting .NET Core 3.0 or higher. 153fb0f
  • Warning NETSDK1023 A PackageReference for 'Microsoft.NETFramework.ReferenceAssemblies' was included in your project. This package is implicitly referenced by the .NET SDK 9d2faf5
  • Warnings SYSLIB0012 8e6d887
  • InMemoryRandomAccessStream: Address review e562016
  • InMemoryRandomAccessStream: Address review 326a597
  • timepicker: [iOS] Ensure proper native picker readability when the system theme is overriden 7f76a10
  • Remove duplicate analyzers 2e7de84
  • Remove NotImplemented attribute from DataPackageOperation enum members 2899f50
  • pointers: Fix possible invalid capture when bubbling event in managed code f1aaa9f
  • pointers: Fix support of clipping in pointer event dispatch bd5c836
  • pointers: Fix tests randomly failing on CI 9485cd9
  • pointers: Make sure to update manipulation first before raising pointer released event 9a750a4
  • Viewbox: alignment f77a56c
  • vsix: Change templates ordering in VS project creation dialog 729ebdf
  • vsix: Ensure mobile and windows targets are deployable by default 39f71b2
  • vsix: Include UWP/Xamarin library template 1c6ea0b
  • vsix: Restore default startup project and configuration for UWP cbdc792
  • xaml: binding trailing space error message ecc52cc
  • xaml: Use fully qualified xClass type for base type resolution 6018ccc
  • Add NumberBox updates from WinUI back bc47072
  • Adding LaunchBrowserCore to diffignore f146bae
  • Adding more error handling to exception 5da4943
  • adding Xamarin.AndroidX.Browser to nuspec 791c9f5
  • Adjust DataWriter.StoreAsync test e3237d4
  • Adjust samples for lottie support 9d335d2
  • Align with latest MAUI's ProjectCapability items 384d12b
  • Allow setting of XamlRoot for unset elements 78a6653
  • AutoSuggestBox.QuerySubmitted ChosenSuggestion should not be null 56c2925
  • AutoSuggestBox.QuerySubmitted ChosenSuggestion should not be null 19e43fe
  • Avoid NRE when querying VisualTree too early for Uno Island ea76b11
  • create a fallback to seleted item c98b2e8
  • Enable await for DataWriterStoreOperation 559533d
  • Ensure initial FocusState setting for TextBox does not cause exception on WPF 7f84d5b
  • Fixed bug with visibility of constants for generators. 2af41ae
  • FlipView theme template c81ce74
  • Frame.Navigated should occur before NavigatedFrom and NavigatedTo a6ee454
  • Generate ILLink.Substitutions.xml for FluentThemes/Toolkit 0be46e5
  • Getting WAB sample to work 185d96f
  • Initiate runtime tests from the UI thread 1fc24cb
  • namespace 0fd41f4
  • null annotations 4571d0d
  • Only use actual MemoryStream length instead of buffer length 7d6cc27
  • Removed unused fields and properties df12422
  • Updated workaround for iOS 16 UITextInput.SelectedTextRange crashes 00392d5
  • Framebuffer: Add support for Application.Exit, change default app to use F12 to exit 90b9435
  • Handling cancellation of authentication 45cadc0
  • Move AssertIssue8356 to be a runtime test 02f7a4a
  • droid: FlipView not displaying items correctly 4f323cd
  • ios: border + corner rendering 213027b
  • RenderTargetBitmap: Compilation error after merge PR #8612 0a927e1, closes #8612
  • SamplesApp: [Skia] missing Package.appxmanifest 8f4da16
  • SamplesApp: move assertion after initialization is completed. 7df8686
  • skia: Restores opacity feature on UIElement 39abe47
  • TextBlock: [Skia] Fix hyperlink foreground color 7f535d8
  • TextBox: [iOS] Add temporary workaround for iOS 16 on selection with UITextField b6764fc
  • [iOS][Android] fix FlipView first load selecteditem above limit 0ea7e7a
  • [macOS] follow system colors changes 85fed70
  • Add Automation namespace to avoid fuzzy matching issue in single-project WPF c1a3b59
  • Add code-behind for InlineTextInSpan to avoid build warning for WASM 1a30a08
  • Add missing samples 757a921
  • addressing pr feedback c8a5b17
  • Adjust for proper lottie file encoding on net6 mobile 5214048
  • Allow D&D for GridView b66e229
  • apply review 514c401
  • Bump to WinAppSDK 1.1.0 638d177
  • Enable full-window runtime tests on Windows e010394
  • Fix LinearGradientBrush not working properly on TextBlock 7ac769a
  • Leftover pointer issues in PointerManager d8a9927
  • make event call syncronous 49dbcdf
  • Move json.net package ref to directory.build.props 5e33df1
  • null annotations 4a63dfe
  • Properly detect the device is running on a foldable even if not spanned 59d1011
  • re-use of native path instances and further optimizations ba689d3
  • re-use of native path instances and further optimizations, accepted review suggestion 8d6c5fd
  • Renaming android only file 77c4abc
  • Rewrite symbols while merging ILLink.Substitutions.xml 31b4e7a
  • Successful build on first attempt for sampleapp.ios as it will build the uitests and generator projects 2565229
  • droid: FlipView showing empty pages with templateselector 2cd7468
  • framebuffer: Fix invalid 32bits pixel format 3dab877
  • framebuffer: Mark dispatcher thread properly 9268b6f
  • framebuffer: Use scanline copy to adjust for padding when required ff32546
  • MenyFlyoutPresenter: Fix TemplatedParent propagation in MenuFlyoutPresenter bec5f12
  • skia: Enable scaling on HW accelerated render surface 249c821
  • Uno.UI-Windows-only.slnf build dependencies 277012e
  • Wrong CLI cmmand for exlcuding mobile in get started 3d871ef
  • iOS: Fire the native SizeChanged event upon init of Window a70b9c6
  • iOSmacOS: Correct computation for LogicalToPhysicalPixels 31d5b66
  • Lottie: Fix invalid background reset af10b1f
  • macOS: Remove dupe ObjCRuntime namespace 0a28c0d
  • PasswordBox: Avoid the content of PasswordBox being cleared on iOS 2ea8fae
  • Restore Com.Airbnb.Android.Lottie for monoandroid ae8c637
  • Rewrite lib reference paths for Skia/WASM c69b1ba
  • Suppress obsolete warning b63d96c
  • WASM root element loading logic 7957d01
  • rc: Adjust for faulted connections 661ee8d
  • rc: Adjust socket selection for non-faulted connections on net6 mobile c31e72d
  • reg: Add missing WindowsAppSDKWinUI visibility for roslyn 1195fa0
  • SamplesApp: WinUI Activation Kind condition 266bdbb
  • skottie: Adjust for transparent iOS render surface caa4910
  • TextBlock: [Skia] Fix RTL segment ordering d743a48
  • TextBox: [Android] restores AcceptsReturn ability to display text on multiple lines 1a0f341
uno - 4.4.5

Published by jeromelaban over 2 years ago

Uno Platform 4.4 is our 4th release in 2022, keeping us on a once-in-six-weeks rapid release schedule we aim for. The release packs numerous UI and performance improvements across all target platforms. First, on the UI side you’ll be able to produce beautiful fluid animations on .NET Android, .NET iOS and Skia-based targets, as well as increase high-fidelity renderings of all your texts on Skia-based targets. Second, on the performance side we are including support for the most recent WebAssembly advances available in .NET 7 – Wasm Threading and Exception Handling. Lastly, we also enabled new input scenarios via GamePad API support and improved the default project templates.
In total we have implemented and resolved over 90 new feature requests and issues.

View the full announcement in our blog post.

Some of Highlights:

  • Skottie integration (MUX ProgressRing on all Skia targets and .NET 6 mobile targets) (@jeromelaban)
  • Overhauled Skia TextBlock rendering with HarfBuzz (Support for wrapping, rich formatting, etc...) (@mikernet)
  • dotnet new unoapp now uses .NET 6 and WinAppSDK (@jeromelaban)
  • The Skia.WPF project is now available as one project (no more .Skia.Wpf.Host project), and now supports .NET 6/C# 10 (@jeromelaban)
  • GamePad APIs (@MartinZikmund)
  • Experimental Wasm threads support (@jeromelaban)
  • Wasm Exceptions support (@jeromelaban)
  • Many small performance improvements for all platforms (@ebariche, @spouliot)

As always, thanks to our contributors:

  • Pre-Android 23 fix (@queequac)
  • Docs updates (@aki32, @mmarinchenko, @workgroupengineering)

You'll find below the full change log.

Features

  • lottie: Add support for AnimatedVisualPlayer on net6.0 mobile and Skia targets. f0a8ac9
  • Add the ability to set the Window background color 67f8ffe
  • implement CoreWindows.Bounds 41b21a3
  • Merge Wpf and Wpf.Host projects 3f82834
  • Move unoapp to unoapp-uwo f27c285
  • Move unoapp-net6 to unoapp-uwp-net6 d1b6ac2
  • Move unoapp-winui to unoapp-winui-xamarin 68dba9a
  • Move unoapp-winui-net6 to unoapp 1a0c349
  • BitmapImage: [Skia] Add support for ms-appdata, BitmapImage.ImageOpened/ImageFailed 639fac2
  • gamepad: GamepadAdded/Removed on Android a82cafa
  • Gamepad: GamepadAdded/Removed for WASM 1160c40
  • Gamepad: GamepadAdded/Removed on iOS, macOS dd0a1b2
  • Gamepad: GetCurrentReading on Android 96cd0bb
  • Gamepad: GetCurrentReading on iOS and macOS 2ce9933
  • Gamepad: GetCurrentReading on WASM 52dab51
  • TextBlock: [Skia] New HarfBuzz-based text rendering engine dcb83be
  • wasm: Add support for threads e53ca2f
  • Add WinUI 3 item templates d6a7c22

Performance Improvements

  • drawables: Generate resolver to avoid reflection at startup bab524b
  • iOS: Cache DisplayInformation properties a5919a8
  • iOSmacOS: Directly convert from Color to CGColor b9f8051
  • iOSmacOS: Remove dead code and reduce casts in Layouter 7b783b1
  • macOS: Avoid calling Subviews getter inside Dispose eff8fd7
  • macOS: Cache DisplayInformation properties 67e02bd
  • paintpool: Avoid unnecessary managed/unmanaged transitions d11d4e2
  • selectoritem: Use monotonic clock instead of DateTime.Now e8d9813

Bug Fixes

  • Adjust harbuzz initialization to avoid Gtk3 interference cc0b352
  • Never enable the interpreter on net6.0-macos 5c75735
  • Skia: [TextBlock] Fix rendering when font properties change 3dc5b2d
  • [Android] TextBox EmailSmtpAddress InputScope does not work ebb290a
  • [TextBlock] Prevent Text value overriding when it isn't necessary 3808c00
  • Adjust default timeout for vscode debugger 507b9c9
  • Adjust formatting in the vsix mobile template 4a96a92
  • Adjust net6 library template for default xaml includes a6e56ed
  • Adjust new net6 library from vsix 48ce808
  • Adjust solution filter for unoapp-net6 7741611
  • Align resource conversion for empty values 658b3f0
  • Allow explicit disabling of the browser context menu 6744488
  • AutoSuggestBox Reason with inconsistency 8d8686d
  • Avoid Layout property event subscription leaks 2f13d2c
  • Calculate SystemFocusVisual position relative to root element 996fd06
  • ChildrenInTabFocusOrderIterable skipping first element 908c1e4
  • Correct attribute argument for auto navigation 4b8a997
  • DataTemplateSelector should throw if container is null 4a296e4
  • Don't use GRGlInterface.Create to determine OpenGL availability 503d60b
  • Enable VerifyUIElementsInItemsSource test c802530
  • Ensure app is started after native WPF template is applied 08b3e0e
  • Gamepad readings improvements on WASM and Android 7036e6c
  • Invalid support check in OpenGLRenderSurface 3c1b5b8
  • Lower roslyn generation selection log message b85366b
  • Make Clipboard.GetContentAsync reliable 4762bb2
  • missing guarding leads to crashs under Android prior to API 23 97a88cb
  • Missing mobile project for unoapp 41e1059
  • NavigationViewTests waiting 7b4c596
  • Replicates the linker default behavior for xamarin.mac 8e69ea8
  • Use fully qualified name lookup for xClass resolution fa9f6b3
  • UWP Samples app runtime tests attempt to use DP from non-UI thread d656f03
  • codegen: Serialize XamlGenerator executions 38705eb
  • DatePicker: Ensure proper native picker readability when the system theme is overriden. 77b795b
  • dotnetnew: Fix incorrect restore in unoapp-winui f50e281
  • dotnetnew: Misc adjust unoapp-winui-net6 d77a1a4
  • expander: properly clip to bounds on expand/collapse 66cdc45
  • ItemsRepeater: Avoid ItemsSource and Layout memory leaks 9320a67
  • ItemsRepeater: FindFocusCandidate did not return focused child 6fcf1dd
  • macOS: Remove warning/usage about/of deprecated userSpaceScaleFactor f2b76cc
  • measure_dirty_path: recycled ItemsControl not re-measuring 6f87bb8
  • net6: Windows iOS build fails to package bundle resource properly dc6b864
  • pointers: [iOS] Fix frame id capping to uint.MaxValue (Breaks Drag and Drop after about 10 days of device uptime with latests version of iOS) 2a08809
  • skia: Add missing Harfbuzz dependencies for Wpf, Tizen and Framebuffer 260ae4d
  • skia: Adjust more Harfbuzz dependencies a7a6797
  • winui: Adjust path for manifest a318b3a
  • Reset NSObject InFinalizerQueue after calling ReRegisterForFinalize 79425c9
  • Sync system focus visual with the focused element on scroll 523a82c
  • TextWrapping="Wrap" does not seem to work for TextBox on Android 1727f40
  • try to fix broken initial nav 22d69aa
  • Using long path format for Attachment 99c410f
  • Validation for GL instance b1e50af
  • Window Title by Manifest in SKIA WPF and GTK 7081442
  • xbind: Ensure source updates update the target during a two-way binding 55d166f
  • TryFocusAsync on non-focusable elements 3e60ded
  • Turn Window Title by Manifest in SKIA 3665d46
  • reg: Add missing harfbuzz dependency e42bf4e
  • WebViewBehavior: nre 9aaa7e0
uno - 4.3.8

Published by jeromelaban over 2 years ago

Uno 4.3.8 is a service release for Uno 4.3.

What's Changed

Full Changelog: https://github.com/unoplatform/uno/compare/4.3.6...4.3.8

uno - 4.3.6

Published by jeromelaban over 2 years ago

Uno Platform 4.3 is here! The focus of this release was on enhancing our Figma plugin which generates your app XAML directly from Figma designs, Uno.Themes Material v3 update, as well as advancing Uno Extensions to help bootstrap your apps faster.

See our blog post to get all the details!

You'll also find updates for:

  • Visual Studio 2022 17.3 Preview 1 and .NET 6.0.300 Mobile GA support
  • Wayland support for Skia Gtk backend (Thanks @microhobby!)
  • Visual Studio 2022 Template Platform wizard
  • Grid Succinct syntax for WinUI
  • XAML MarkupExtension
  • NetworkInformation API support on Skia (@MartinZikmund)
  • BatteryReport and AggregateBattery (Thanks @pkar70!)

Read below for the full change log.

Features

  • [droid] BatteryReport and AggregateBattery c3be84d
  • Add VS 2022 .NET 6 template, split wizard e00079f
  • adding max textscale and usage 1a625e7
  • Allow runtime checks whether File System Access API file/folder pickers are available 4fc16bc
  • Avoid using Skia Host constructors with args 68a4f42
  • BTdevice structs ecfbbe1
  • Focus support in managed FlipView 58ea2f8
  • Implemented new grid succinct syntax. d433d2e
  • Implemented new WinUI Grid assigned ContentProperty syntax. ad7fa98
  • Implemented XamlReader support for ContentProperty syntax. 9f8d51d
  • Implemented XamlReader support for ContentProperty syntax. ab87f00
  • Implemented XamlReader support for succinct syntax. 8057b0c
  • Move ItemsSourceView implementation to base, support IReadOnlyList d13f6fb
  • NetworkInformation API support on Skia b341ba9
  • Prevent net6 mobile creation below 17.3 7dd340e
  • Window size for Mac Catalyst 5a65465
  • gtk: Add OpenGL ES support 883ab5b
  • ios: Add GetLocationManager 12dae4c
  • markup: initial parser context support d5976c6
  • MSAL: Added "Jwt" assembly to linker definition, to prevent linking-out this when using the MSAL package. 1494c67
  • Pass arguments to LaunchActivatedEventArgs on macOS 21e664b
  • some Background structs for all platforms 01e0a48
  • ValueSet dd54b5c

Bug Fixes

  • Adjust formatting in the vsix mobile template c7565a0
  • Adjust solution filter for unoapp-net6 a2f553a
  • docfx missing change with the last merge a2e5cd5
  • Lower roslyn generation selection log message a0c5f7c
  • dotnetnew: Fix incorrect restore in unoapp-winui 77ef022
  • dragdrop: Make sure to disable dragging on LV's ItemContainer 9e797ad
  • markup: custom markup in binding is missing parser context 4f71e44
  • markup: NRException when returning null from markup 8a1ef0a
  • net6: Adjust assets generation of iOS/Catalyst 7c8bcfd
  • net6: restore xamarin-like ios exception marshaling for performance 04cd0dc
  • template: Adjust versioning in vsix templates f1b5527
  • [SamplesApp] ImageSourceStream Error 522 Connection timeout 931d251
  • Adjust default plist values for net6 mobile targets 8fd4390
  • Adjust resources generation for net6.0-ios new targets eed7596
  • Apply workaround for VS Shared projects issue f2c59ac, closes #5007
  • enabling distant URIs for Lottie fcbe986
  • Fixed incorrect generation for xaml object binding with xaml object properties. 90208b3
  • missing rename NumberBoxTests 61c9d5e
  • Temporarily restore LoadActions 024c26d
  • samples: Rename dopes tests 650832e
  • SamplesApp: Mux Category 7fa2eab
  • skia: Restore original canvas state for Software renderer e861f6c
  • [SamplesApp] Missing Icon Resource d5c5038
  • Add GC configuration for all net6 mobile templates a2155bb
  • added feature for Android 0e09483
  • AutoSuggestBox.QuerySubmitted ChosenSuggestion should not be null 474d3ef
  • codegen: Don't warn on CA1001 by default (disposable fields) for generated code 1d4fb90
  • codegen: Enhance roslyn version detection bac02b6
  • Adjust for duplicate package references in 6.0.300 d862a96
  • E_RUNTIME_SETVALUE SampleContent not found 69de305
  • fail gracefuly on invalid PRIResource files 6498cc3
  • codegen: Enhance roslyn version detection ce9ef6e
  • fail gracefuly on invalid PRIResource files 2cd9ffe
  • filesavepicker: Avoid possible IndexOutOfRangeException on macOS de70392
  • iOS: Adjust for new nullable signature 52a04f6
  • macos: Use case-insensitive API to load images from bundle f21db05, closes #8666
  • net6: Restore partial support for MUX progressring 3a0ddf0
  • Add FrameworkReference to winui projects 56e0806
  • Adjust net6-winui dotnet new 9ccc9ad
  • Adjust wizard for VS 2019 464c34e
  • FileSavePicker does not return the picked file in Android 9be9dd1
  • Fixed AccessViolationException that occurs in GLibSharp.dll after storage picker interaction 2bd123f
  • Fixed AccessViolationException that occurs in GLibSharp.dll after storage picker interaction 3cdc26e
  • Fixed comments. d706e8a
  • Genertaion of native ctor 0d188da
  • ImageSourceUrlMsAppDataScheme NullReferencenceException on DataContext Changed e17e5b8
  • Improve IsApiContractPresent accuracy a2aef58
  • Invalid GUID parameter name in dotnet new template JSON 673b9b6
  • max scale factor works as intended on android 63b2944
  • MethodAccessException b2ea50d
  • nit 41ac436
  • NullReferenceException 70b26dd
  • PackageIcon a49f972
  • Reduce "Uno.UI is using Roslyn generators" message level b97733f
  • Reduce logging verbosity for remote control connection errors df9cca6
  • Reverted RowDefinition and ColumnDefinition changes. 81a64bd
  • some SamplesApp missing resource d574b86
  • iOS: Adjust for new nullable signature ec65c79
  • net6: [Android] Adjust for proper assets base path f653bf5
  • net6: Add supported platforms attributes for CA1416 1d04414
  • net6: Adjust keyboard location computation e569a04
  • net6: Adjust manual native ctors signature 1815b79
  • net6: Restore ElevatedView templated parent support 5a782ff
  • TextBox doesn't support the TextWrapping.WrapWholeWords enumeration value 8e6faab
  • The parent of FrameworkElement is always null in GenerateBitmap 9f890c9
  • typo 525660a
  • xaml typo b800a40
  • gtk: Fix OpenGL render surface flickering 6e6c158
  • net6: [iOS] Ensure current culture is set at Application startup ac58dce
  • net6: Auto include BundleResources, show excluded compile items 42c6eba
  • net6: Remove unused InvariantGlobalization configuration 6c1f1d3
  • skia: SKImageInfo.PlatformColorType is incorrect on macOS/arm64 ba2acc8, closes #8580
  • SourceGenerators: NativeCtorsGenerator will execute after XamlCodeGenerator 497bcbe
  • vsix: Don't fail if DTE build information cannot be found 9363ae3
  • Wasm: Changing TextBox.Text in code should reset the caret a05ca79
  • winui: implemented Window::DispatcherQueue 033ae9b

Performance Improvements

  • Remove LoadActions a8f2aec

  • skia: Reuse surfaces/bitmaps and reduce native calls f8efae7

  • fix!: Launch arguments should be separated by space 19ef842

BREAKING CHANGES

  • In UWP/WinAppSDK the launch arguments are separated by space only, whereas Skia targets used semicolon before.
uno - 4.2.6

Published by jeromelaban over 2 years ago

Uno Platform 4.2 – .NET 6 Mobile RC1, Performance

As of last week’s release of .NET 6 Mobile RC1, Uno Platform is now following the updates to ensure that you have access to the latest features provided by the .NET runtime.

You can read the full post here.

As per Microsoft’s announcement, the .NET 6 Mobile APIs are now considered stable for iOS, Android, and Mac Catalyst. This enables applications and libraries to be developed without having to deal with any breaking changes in future .NET Mobile releases. As Uno Platform takes a dependency on dotnet runtime, this is important as we can stabilize our own support for iOS, Android and mac Catalyst targets.

Since our previous release about six weeks ago, we also made a batch of changes to fix the support for localization of iOS, macOS and Catalyst apps, based on the new behaviors of .NET 6. In total there were over 190 new features and fixes completed, around Geolocation, focus and keyboard management, Android/Skia/WebAssembly performance, and more. For those who like stats – that’s about 6 closed PRs per business day; we are definitely picking up velocity even more.

As always, to upgrade to the latest bits and use .NET 6 Uno Platform app templates, you’ll need to use uno-check.

You can find up-to-date information about uno-check in our docs.

To install Uno-check:

dotnet tool install -g uno.check

To update Uno-check if you had it installed already

dotnet tool update -g uno.check

You can then run it with:

uno-check --pre

Important note:
If you were already using Uno 4.1.x, had run uno-check and were using VS 17.2 preview 3 or earlier, upgrading to 17.2 Preview 4 or later will cause mobile workloads to become desynchronized. To fix your environment, you’ll need to run the following command:

dotnet workload install ios android maccatalyst macos --from-rollback-file https://aka.ms/dotnet/maui/rc.1.json --source https://aka.ms/dotnet6/nuget/index.json --source https://api.nuget.org/v3/index.json

Community Contributions

We'd also like to thank the community contributors for this release:

  • Android FileOpenPicker mime types, DisplayInformation and Geolocator updates (by @pkar70)
  • Documentation updates (by @workgroupengineering, @mtaheij, @mikeirvingweb, @XperiAndri, @AnthonyDParkhurst, @TopperDEL, @baskren, @LokiMidgard)
  • Source generators updates (by @Youssef1313)
  • PercentFormatter, PermilleFormatter, DecimalFormatter (by @MohammadHadi2031)
  • Fixed support for WPF and net47 (by @trungnt2910)

Full change log:

Features

  • Add basic support for entered/leaving background deferral 3eb2562
  • Add support for overriding the MessageDialog style 95ada29
  • Add support x:Bind to static event handlers 1e30a7d
  • Android FileOpenPicker MIME types eca4cc1
  • Basic ListView keyboard navigation b092f72
  • BringIntoViewRequested handling on ScrollContentPresenter 3d09430
  • cascade down update to Presenter 760906e
  • Change Release package defaults for Android app template 0c4eefc
  • CloseRequested event on Skia 9f25358
  • ContentDialog-based MessageDialog fbc932d
  • CoreApplication EnteredBackground and LeavingBackground events e461b69
  • Deferral.Dispose completes the deferral b510d0b
  • ElevatedView on Skia 2180e23
  • Enable focus states on SelectorItem 73d176d
  • Focus support in managed FlipView 58ea2f8
  • Implemented feature SelectedText on TextBox 0775781
  • more detailed ClassLib info for VB (recreated) a9de33e
  • Pass arguments to LaunchActivatedEventArgs on macOS 21e664b
  • Support for BringIntoViewOptions 5c45fc0
  • Support for UIElement.BringIntoViewRequested routed event d46a2e7
  • Update API surface to match Windows 11 22000 SDK efe34fb
  • Update Sync generator to 22000 9305aa0
  • arrange_dirty_path: First working version of arrange dirty path on Skia & Wasm 56b69c7
  • DecimalFormatter: Implement FormatDouble and ParseDouble 3e103af
  • dirty_measure_ios: Fixed the broken build for iOS. Not actual implementation of DIRTY_MEASURE_PATH for iOS. ab86102
  • FolderPicker: [Skia][WPF] Added support at SuggestedStartLocation and CommitButtonText 3d8bf64
  • ListView: incremental loading support for skia/wasm 1410316
  • updated Geolocator for Android 280a006
  • gtk: Add OpenGL acceleration e89870d
  • macOS: Add SelectedRange on TextBox fcaccd6
  • measure_dirty_path: Implemented the Dirty_Measure_Path on Android. Should bring significant perf improvements on this platform. 44bc0ed
  • PercentFormatter: Implement FormatDouble and ParseDouble e41759f
  • xaml: support named params in MarkupExtension 428b08c
  • Support WUX ProgressRing everywhere eb13011
  • PermilleFormatter: Implement FormatDouble and ParseDouble 0169c51
  • Support Enter, Space and Escape on ComboBox fb52456
  • Support Up & Down and keyboard item selection on ComboBox d61ce66
  • Use theme-aware WASM splash screen by default 7c63800
  • textbox: Update IsEnabled 6025109
  • fix!: Launch arguments should be separated by space 19ef842
  • feat!: Bump UWP version to 18362 9f41fd4
  • feat!: Bump to net6 preview 13.2 dee6870

Performance Improvements

  • Adjust resource resolver to avoid ICU based comparisons on net6+ 1244199
  • Disable logging in release builds 26137e2
  • Don't materialize x:Name-marked styles eargerly inside of uno 39a7e70
  • Fix regression in SpecializedResourceDictionary 44a49f9
  • android: Don't refresh memory statistics too often 259e365
  • Scavenge TextPaintPool storage 0d4c160

BREAKING CHANGES

  • In UWP/WinAppSDK the launch arguments are separated by space only, whereas Skia targets used semicolon before.
  • Bumps the target UWP version from 17763 to 18362
  • This update contains binary breaking changes to follow
    .NET 6 Mobile iOS/macOS/Catalyst API changes. It requires Visual Studio
    2022 17.2 Preview 1 or later and cannot work on previous VS 2022 releases.

Bug Fixes

  • gtk: Fix OpenGL render surface flickering dd529f4
  • net6: Auto include BundleResources, show excluded compile items 42c6eba
  • net6: Remove unused InvariantGlobalization configuration 6c1f1d3
  • Adjust MonoAndroidAssetsPrefix to use Assets from shared project eb5d0aa
  • Adjust default plist values for net6 mobile targets 8fd4390
  • Adjust flyout position in visible bounds 2103533
  • Adjust resources generation for net6.0-ios new targets eed7596
  • Adjust ScrollContentPresenter.ViewportWidth/Height on WASM 9a4e884
  • Adjust template for .NET 6 RC1 preview SDL 9567af1
  • Adjust VisualParent property to return Selector for SelectorItems bdfc675
  • Apply Review 635f43f
  • Apply Review 1d233de
  • Apply zoom and content offset simultaneously on iOS e92379f
  • BorderThicknessProperty warning on skia/wasm 96a46d4
  • CI for not used variable 7c94ce5
  • Clamp Popup placement in visible bounds 09a2c58
  • Decrease default TreeViewItem glyph size e821bed
  • Enable XAML Intellisense in VS 2022 for non-WinUI/UWP projects 050b537
  • Ensure that TextVisual does not render when size is empty 82aabd6
  • FlipView: Flipping on WASM and Skia 811266b
  • net6: [iOS] Ensure current culture is set at Application startup ac58dce
  • ContentDialog does not show up on startup on WPF 5bff961
  • convert-sourcetree-to-winui.cmd 79115b5
  • deobsoleting DisplayInformation (Android) 569935f
  • Do not apply ScrollOffsets if the source element is the scroll port b115cb4
  • Don't throw if DTE SolutionBuild is not available 1bdaa10
  • Ensure compatible numeric types are compared to avoid exceptions in Verify bf96acc
  • Ensure DeferralManager.CompletedSynchronously is set correctly before Completed execution 00f5f23
  • field not available for target 155f2d9
  • fixed error loading ms-appx asset files with spaces - all platforms 44d391f
  • Generate specific platforms for NotImplemented types bd95a0d
  • Generating API sync for Composition & Dispatching in UWP mode c7a6185
  • NativeFrame runtime tests failing without outer scroller a43b0e2
  • NavigationView selection indicator unreliable for minimal display mode 25e99af
  • Samples app local debugging 0296ab1, closes /github.com/xamarin/xamarin-android/issues/6697#issuecomment-1034784286
  • SelectionModel and SelectedItems enumeration 6652358
  • Set iOS Window background to Clear instead of White 568d988
  • Use native MessageDialog on Android, iOS and macOS eb7ee3e
  • WASM ScrollContentPresenter offsets are immediately set after scroll request without animation d149662
  • catalyst: Force enable globalization and static registrar, disable interpreter 1e252d5
  • catalyst: Include ios XAML for catalyst 00144d4
  • catalyst: Move to newer Preview 14 API breaking changes 89e70c1
  • CommandBar: Remove 1px "shadow" from iOS native CommandBar 0a4eb04
  • DependencyObject: Fix possible infinite loop on ancestor lookup acfb5ae
  • FolderPicker: [Skia][WPF] Applied Codacy suggestions bc4db1e
  • getparent: Never call .GetParent() in an element while it's being finalized. fb10dc8
  • itemscontrol: Fixed problem with internal assignment of indexes to elements in ItemsControl 4b63312
  • keyboard: [Android] Improve keyboard size info on 30+ 607992d
  • layout_update: Fixed a potiential "Layout cycle detected." exception 8d6075d
  • listview: Fix flickering when reordering items on Android 4614b38
  • NameScope: Ensure NameScope is not overriden for XAML backed controls b2c8a47
  • pointers: Fix gesture recognizer not completing drag manipulations internally. a605c4e
  • textblock: Text size were incorrect on MacOS 3f54b2e
  • XamlReader: collection parsing issues 0562480
  • Exclude fluent types from GlobalStaticResources automatic init 408a7c6
  • Warnings NU5048 c738b2d
  • WebAuthenticationBroker returns canonical URL with the trailing slash b57a062
  • Border: [Android] disable AntiAlias c0f4bc3
  • Border: Issue #8010 788e7f2, closes #8010
  • macOS: UpdateHitTest in some events. 73fd186, closes #6645
  • pointers: Do not allow LV.ItemClick if element allowed manipulation bb700bc
  • ScrollViewer: Content margin was not taken into consideration for Skia and WASM. 35cd99d, closes #7000
  • [WASM/Skia] Ensure ScrollViewer or Border apply margin of their Content properly d29f236
  • Ellipse with stroke alignment on Skia 7661642
  • Mobile header menu scrollable in docs section 2eab76a
  • flyout: full placement not taking entire screen edaea6e
  • net6: remove unsupported lottie support for apple targets 133a4bf
  • template: Bump bootstraper to 3.3.1 2a43343
  • Remove explicit net6.0-ios version in plist for template 005fb8d
  • Some samples using internal visibility for Commands 7b09859
  • coloranimation: filling values are not updated on theme change 2e5edd3
  • droid: color animation not setting value bd0c5c3
  • idbfs: Fix non-LocalFolder persistence 54d6103
  • listview: Make sure that indices are properly computed when remove+add the same item fd8bbd4
  • macOS: SplitView opening action 8ba6745
  • reg: Fix pointer pressed flagged as Handled still bubbling 34115f2
  • reg: Fix possible null in tests fd52bd7
  • reg: Focus was removed on any element on popup dismiss (whiel it explicitly tries to restore it) 5e9573c
  • [iOS][macOS] fixed BitmapImage needs encoding when loading from url f454834
  • Adjust AndroidSupportedAbis and add proper validation for the target list eea4842
  • Adjust net6 VS features flags a53eba1
  • Avoid disabling Paint AntiAlias when drawing rounded corners aaa7a71
  • Avoid duplicate registration of open Popups a4647e8
  • Closing poup immediately should not throw 9e01aaa
  • Remove SampleApp AndroidUseLatestPlatformSdk use 059b1da
  • UnitTestsControl crashes on UWP 6ffe6a6
  • Uno logo no longer disappears on some docs section 15cc273
  • Uno.Xaml.Tests excluded from test runner 889f086
  • ComboBox: Refresh content on popup open d149390
  • EllipseGeometry: [Skia] false message 'is not implemented in Uno' for the member EllipseGeometry.EllipseGeometry() b461cd5
  • measure_dirty: Fixed a regression caused by the refactoring on iOS for the implementations of MEASURE_DIRTY_PATH on other platforms (still not supported on iOS/macOS) 313e992
  • pointers: [iOS] Make sure SCP does not stop bubbling of native pointer events 36385c7
  • pointers: Do not consider event has "handled" when reaching the root of the visual tree b3b9056
  • pointers: Fix possible enumeration of a modified collection 430c279
  • pointers: Make sure to raise the exit event even if redispatched on non-hoverred element (e.g. implicit capture) 3f49fde
  • pointers: Multiple fixed regarding pointerExit 5365bb6
  • reg: Fix support of manipulations in SV on WASM 4d3d7b5
  • wasm_scroll: Disabling animation on scroll for WASM were not working. dffc5a6
  • Directional focus can be evaluated indefinitely 3c81917
  • WASM geoposition watch never stopped ddfc724
  • frame: [Android] When using stacking mode, previous pages are not collapsed 6315243
  • ListView: Reduce the number of materialized items on large scrolls 8305965
  • pointers: Fix enter/exit when moving from container to nested element f4f9802
  • Point users to MUX version of ColorPicker 850e0c5
  • Remove framework override for Skia.Gtk 41eaf33
  • Use VisualTreeHelper for Frame navigation focus movement 88210fd
  • VisualTreeHelper.GetParent should be able to reach ItemsControl from item containers 479cdae
  • When_ScrollViewer_Resized test failing without outer Scroller a6d681e
  • docs: Revert the resizing and update the menu look fb4735d
  • pointers: Fix SelectorItem might invoke ItemClick even if it didn't get PointerPressed 5000a71
  • pointers: WASM make sure to release captures even if pointer up event has been handled 11882f5
  • storage: [wasm] Fix invalid IBFS initialization 8400eae
  • templatepool: template not being applied on recycled item c657741
  • ToggleButton: Fix invalid visual state property 6b66a91
  • wasm_freeze: Fixed problematic .Content on ContentControl sometimes freezing the app. 7520a02
  • wasm_freeze: Fixed sometimes the UI froze when recycling elements. ccf204f
  • Adjust macOS and Catalyst versions 7f21cf1
  • Invoke item only if previously pressed 7538e1b
  • Issue #8038 62294e5, closes #8038
  • Move focus properly within bounds of ScrollViewer on Android and iOS 63feedf
  • VerifyNavigationViewItemToolTipPaneDisplayMode test a4eabc6
  • docs: Changed how the navbar is removed when iframed 7dc1786
  • iOS: CommandBar Custom Image Sample 959daed
  • listview: Fix blank ListView inside ListView bf2dfb7
  • PagerControl: Fix bug where setting button visibility would be ignored 7be589b
  • pointers: [iOS] Pointer exit is now bubbling properly even if handled by a nested element. It will also be raised after the whole tree get the up (was raised per layer). 132ed5b
  • pointers: Fix broken focus fb9e724
  • pointers: Make sure to set the UpdateKind on all platforms and use it handle focus 62d5342
  • reg: Make sure to release captures even if pointer up has been handled 440f22f
  • reg: We must focus TextBox as soon as it being pressed, no matter where the pointer is released 70c9c2f
  • scrollviewer: [iOS] Ensure ScrollViewer applies margin of its Content properly 4fd1d06
  • wasm: TextBox VisualState 7895cde
  • winui: Adjust winui-net6 template startup 8869d0d
  • xBind: Fix support for nullable struct binding eac0a68
  • JobName typo for the CI 87c386d
  • Rectangle with stroke alignment on Skia d11af7e
  • TextBox test failing on iOS 15 74e0119
  • reg: Fix failling tests on CI 192a7e4
  • reg: Mouse wrongly triggers scrolling on skia on long press 1aff72c
  • WPF: Use WPF for all library targets 0b358d4
  • xaml: parsing of nested markup with multiple params 4fc5c92
  • Fix SV wrongly reports horizontal scroll enabled, preventing scroll when hosting SwipeControl c971e68
uno - 4.1.9

Published by jeromelaban over 2 years ago

Uno Platform 4.1 Update for .NET 6 Mobile Preview 14 and VS 2022 17.2 Preview 2

The .NET team has been steadily releasing a set of updates to the .NET 6 Mobile previews. Last week's update was Preview 14, which came at just about the same time as Uno Platform 4.1 release. Following .NET 6 mobile Preview 14, we’re publishing the Uno Platform 4.1.9 service update.

This update includes a new set of binary breaking changes added in .NET 6 Mobile Preview 14, which requires the use of Visual Studio 17.2 Preview 2. If you update to Preview 2, you will need to be on Uno Platform 4.1.9 or later.

Using .NET 6 Mobile Preview 14 with Uno Platform projects

To use this new preview in Uno Platform projects, you’ll need a few steps:

  • Install the latest uno-check preview

    dotnet tool install -g uno.check --version 1.2.0-dev.10
    
  • Or update to the latest uno-check preview

    dotnet tool update -g uno.check --version 1.2.0-dev.10
    
  • Then run the following:

    uno-check --pre 
    
  • If you’re building on a mac, either directly or through VS for Windows, you’ll need to run uno-check on the mac as well.

  • Make sure that your Visual Studio 2022 Uno Platform extensions are updated to 4.1.9 (it should be automatically updated)

  • Update your nuget packages to Uno.UI.* 4.1.9 or create a new project from the templates.

Note that if you intend to build for iOS, Xcode 13.3 is required and that this version of requires macOS Monterey.

uno - 4.1.8

Published by jeromelaban over 2 years ago

It has been just over 3 months since our 4.0 release, and we’ve used that time to focus on performance as well as bringing the latest .NET 6 and even .NET 7 innovation to Uno Platform. By simply updating your application to the newest bits you will notice a significant boost to your app performance.

This release packs over 200 new feature requests, bugs, and issues you raised. We welcomed a few great contributions from our community which is now over 210 contributors strong! Thanks for all you bring to Uno Platform.

For more information about the release, read our blog post.

Important note about .NET 6 Mobile support

The current support for .NET 6 Mobile Preview 13 requires VS 2022 17.2 Preview 1 or later, 17.0.x and 17.1.x are not supported, and naturally Uno Platform will face the same constraints. It’s also worth noting that with .NET 6 mobile Preview 14, Microsoft will introduce an additional (and likely final) set of binary breaking changes, and we’ll publish an update to Uno nuget package to align with those changes.

Once you have 17.2 Preview 1 or later installed, use uno-check --preview to setup your environment.

Features

  • element_measure_dirth_path_disabled: Added the ability to deactivate the new InvalidateMeasureDirtyPath at element-level instead of just globally (6779b34)
  • invalidate_measure: Ensure the .MeasureOverride() is not called when not required after invalidation. (e406239)
  • max_layout_iteration: Limit the number of iterations while trying to measure elements. (23e5c90)
  • measure_dirty_path: Implemented MeasureDirtyPath on both Skia and Wasm platforms (29c5b45)
  • pointers: Add basic support of pointers injection API on Skia and macOS (fe1c9bd)
  • textbox: Update IsEnabled (6025109)
  • Add ability to configure if marhsal and/or unmarshal method should be generated when using TSMessageAttribute + generated TS messages are now in the same namespace as where they are declared in C# (6459564)
  • Add Skia memory manager support (699731b)
  • Add support for XamlRoot.RasterizationScale (8ff10bf)
  • Add support for Description property on common controls (46e0956)
  • Add support for GC awareness for internal ArrayPool (e8e63f7)
  • Add support for memory usage aware template pooling (6c98490)
  • Add Title bar test status reporting to UnitTestsControl (af84896)
  • Added DynamicDataAttribute support to RuntimeTest (c5987eb)
  • Bump to Android 12 (1e9cf32)
  • DPI scaling on GTK (a961de4)
  • FolderPicker for Skia.WPF (6f3f596)
  • Improve Skia TextBoxView overlay positioning and sizing (b8240f8)
  • Support for Canvas.ZIndex on Skia (c51e44e)
  • update to .NET Mobile Preview 12 (95fa32f)
  • flyout: Implement FlyoutBase.IsOpen (ef3cf3d)
  • frameworktemplate: Improved the logging of FrameworkTemplatePool to show the actual factory lambda (d59c30f)
  • hotreload: Support x:Bind to properties in hot reload scenarios (1f1a8a6)
  • ios: RequestedTheme will now affects KeyboardAppearance (bfacd86)
  • pointers: [PERF] [WASM] Marshal pointer events instead of serializing them (44df154)
  • wasm: Add MemoryManager support (66038f1)
  • Added single project support for windows packaging in dotnet new (81e0052)
  • EasClientDeviceInformation (fb8ba79)
  • Initial page focus on WASM using browser keyboard navigation (7975615)
  • more detailed GeoLocator UI test (744237b)
  • Per-monitor DPI scaling on Skia.WPF (13eeac8)
  • Replace Page with correct type when reloaded (64a25da)
  • Support CreateFromStringAttribute in XamlReader (5258d49)
  • NativeCtorsGenerator: Generate nested types properly (1d772b9)
  • reapply_theme: Added the ability to reapply application theme to be used when the colors are manually changed in ResourceDictionary, to force the reevaluation of the ApplicationTheme without having to toggle. (dc1a660)
  • Support LineGeometry, RectangleGeometry, and EllipseGeometry in Skia (a5244c0)

Performance Improvements

  • Dispose HashtableEx to return memory to the pool (3db5555)
  • Enumerate children in ContainerVisual via IList and for (5cca9d7)
  • Merge all system resource dictionaries to improve lookup performance (6d49af8)
  • Reduce allocations in BindingItem.SubscribeToPropertyChanged (2740c77)
  • Reduce delegates use in BindingPath property changed (b93c527)
  • Reduce interop invocations during MeasureChildOverride (19625de)
  • Reduce memory indirect allocations from the use of DispatcherConditionalDisposable (a5751f5)
  • Remove indented string builder from InvokeJSWithInterop (2a239b1)
  • Scavenge TextPaintPool storage (0d4c160)
  • Use ArrayPool<T> for Grid's CellCacheStackVector inner storage (1572d6a)
  • Use field aliasing to improve Color.GetHashCode and Color.Equals (429d367)
  • memory: Reduce ConditionalDisposable pressure (3b4bf41)
  • memory: Reduce memory pressure on shape set fill (76998f0)
  • memory: Remove delegate for UIElement GestureRecognizer (2e34584)
  • memory: Remove RegisterDefaultValueProvider delegate in favor of UIElement cast (c2d8eb9)
  • Style: Implement Style.IsSealed to allow for flattened lists caching (1970c77)
  • timeline: Remove the use of events and disposables (922bb4b)
  • fix(pointers)!: [iOS][Android] Enter will now be raised using managed bubbling only (ad80757)
  • fix!: Do not silently dismiss exception in javascript (d67229a)
  • fix(popup)!: Set IsLightDismissEnabled false by default (72fb49d)

BREAKING CHANGES

  • On iOS and Android, PointerEntered are now raised on the whole tree before the PointerPressed instead of being raise per layer.
    This follow the behavior of UWP and the same as Skia and WASM.
    The PointerReleased + PointerExited are still raised per layer.
  • [Wasm] Exceptions raised in JavasScript are now being rethown by default in managed code.
    You can disable this behavior by setting the Uno.FoundationFeatureConfiguration.Runtime.RethrowNativeExceptions config flag to false.
  • Align with WinUI by adjusting default DP value of Popup.IsLightDismissEnabled to false.

Bug Fixes

  • winui: Adjust winui-net6 template startup (8869d0d)
  • Adjust for scaling in description tests (6a968da)
  • Android 12 debugging with VS 2022 Previews (8332e6b)
  • Match XAML numeric literals parsing with UWP (5eea8b7)
  • NRE in GPUFloatValueAnimator on iOS/macOS (a01b5a1)
  • calendar_view: Fixed the "blank calendar" on Wasm (f154961)
  • contentdialog: [iOS] Fix dialog buttons obscured by soft keyboard (79691d4)
  • net6: Bump current android version in template (a9b25c2)
  • passwordbox: Fixed iOS auto-fill interfering with PasswordBox input. (d1bb9c1)
  • pointers: [Skia][MacOS] Pointer events (exit and up) might bubble too much (8c81d53)
  • pointers: [WASM] Fix enter/exit handled not supported (148a5ad)
  • pointers: Cannot get PointerReleased in LVItem when selection is not None (9377ad4)
  • pointers: Fix enter/exit events not awalys raised on skia (835b797)
  • pointers: No mouse wheel data on WinUI (ddfd717)
  • pointers: OriginalSource of gestures and manip events is now fullfiled correctly + [WASM] Raise pointerExit when element is covered by another one (Popup) (041dfde)
  • pointers): Make sure fix(pointers: Exit is now raised after the Up has been bubbled on the whole tree (593057f)
  • reg: [Android] Flag released event has handle has no effect (7353df5)
  • reg: Fix pointer sequence (8ecfc1e)
  • reg: Restore reflection extension support for fields (ef9760c)
  • shape: Stroke update not triggering re-render (de37c27)
  • theme: resources not updating due to DPO store parent not being detached (8f9a026)
  • wasm: Avoid multiple FS.syncfs causing emscripten warning (ea33cf2)
  • wasm: TextBox VisualState (7895cde)
  • Add support for ObjCRuntime.NativeHandle replacement of IntPtr (3993e64)
  • Adjust DependenciesInitializer for SourceGenerator and 6.0.200 (9070fe3)
  • Don't warn on abstract members in generated Bindable Type Providers (80f5fba)
  • Ensure focus moves when navigating between pages (36a7178)
  • Move Page navigation focus to outer elements if available (ee211c9)
  • Remove not implemented on MemoryManager.AppMemoryUsageLevel (afdc298)
  • SelectorItems may stay in pressed state when unloaded to early after state changed (a12fbd1)
  • theme: source dictionary not getting theme updated (6027e66)
  • Ambiguous match on MemoryManager initialization (285f7ea)
  • Disable exported flag for CI (ff3e52d)
  • Ensure trying to close an already closed WASM Native write stream does not fail (123747a)
  • Failsafe for NativeWriteStreamAdapter.Dispose (c8309a6)
  • move test classes to individual files (99c39e3)
  • NRE in UnitTetControl cleanup code (e4315ad)
  • animations: [WASM] Make sure to always stop rendering loop animator, including if collected by GC (7faf552)
  • listview: [iOS] Fix incorrect container reuse with Replace and ItemTemplateSelector (7ba2371)
  • listview: [WASM] [Skia] Redraw list when scroll viewport changes (8e6bcea)
  • Remove incompatible (and unused) AdditionalFiles containing binary files (645e2fd)
  • winui dotnet new template for vscode (2eb2cab)
  • winui-net6 dotnet new template for vscode (a79a063)
  • animations: Make sure animator is being disposed at the end of an animation (9574e67)
  • [iOS] Do not clear text on next key stroke after reveal (a7e98bd)
  • Added platform designators for ListView tests that won't run on iOS (c3598c0)
  • contentdialog: Fixed the ability to reopen a content dialog immediatly after its closing. (e4d5cf9)
  • scrollbar: Tentatively reactivate the ScrollBar test deactaved in issue #7331 (7eeec7a)
  • templatepool: Fixed problem with Template Pooling in ScrollViewer where is ScrollContentPresenter could keep a reference to the materialized content of the ControlTemplate. (2a712f6)
  • [WPF][Tizen] he local function 'EnqueueNative' is declared but never used (28e6342)
  • adjust frame coords for LayoutSlot in ListView/GridView (ac7948e)
  • IsTabStop handling and focus on iOS TextBox (a0bd585)
  • IsTabStop handling for TextBox on Android (276d195)
  • IsTabStop handling for TextBox on macOS (e3e2e3f)
  • IsTabStop handling for TextBox on WASM (da65107)
  • Stop propagating native focus on AllowFocusOnInteraction/IsTabStop = false on WASM (44572e7)
  • appbarbutton: icon color not changing with app theme (49cdbcd)
  • dragdrop: [iOS] Fix support of drag and drop in LV with padding (fb74b8c)
  • dragdrop: Fix DragView not updating accepted operation when moving out of a drop target (626ae3c)
  • dragdrop: Fix reordering item at the bottom of the list has no effect (but still within LV bounds) (0eb888d)
  • FileOpenPicker: Invalid FilterIndex on Skia.WPF (5909a97)
  • FileOpenPicker: Same behavior of UWP when add * file type on Skia.WPF (2b11143)
  • FileOpenPicker: System.ArgumentException Skia.WPF (6990f7b)
  • FlipView: inability to scroll & prev/next btn not updating (09d19ba)
  • framebuffer: NRE in ObserveSystemThemeChanges (9f25e72)
  • iOS: build from vs4m (c032da8)
  • iOS: Time and Date Picker (17a2e30)
  • ItemsControl: [iOS] Invalid native insert sequence in UIElementCollection (5add934)
  • ItemsControl: Don't hold a strong reference on ItemsSource INCC/VectorChanged (753a9b9)
  • listview: [Android] Fix calculations when ItemsPresenter.MinHeight set (8d4c742)
  • listview: [iOS] Fix ItemTemplateSelector called at wrong time (5a9d994)
  • NavigationBar: Move to UINavigationAppearance APIs, fix unapplied background color (b43d371)
  • pointers: Do not throw if pointer event handler is removed during finalizer (2e7f4a3)
  • pointers: Make sure to never raise pointer entered/exited on parents (d9107fb)
  • popup: not working after alt-tabbing (db6ada0)
  • reg: adjust xaml merge for stable relative path (510788d)
  • reg: Do not dispose native animator on Android (f62ec8a)
  • reg: Fix wasm external components are not hit testable, even with a Background set (3a9e825)
  • reg: Invalid StackVector location (d0fc453)
  • resources: Don't update static resources on loading (1d927dc)
  • shapes: Fix Path declared in C# are not closing (7a42617)
  • test: duplicated Ignore attribute when isManual & ignoreInSnapshotTests are both set (89f3ecb)
  • AnalyticsInfo and AnalyticsVersionInfo compatibility adjustments (4c4cd9a)
  • Avoid FocusManager usage before WASM fully initialized (cb0dfc8)
  • ButtonBase should not lose focus when Command.CanExecuteChanged becomes false (e7cbc8b)
  • Don't generate reload cookie for non-C# targets (7977f22)
  • FileSavePicker should create target file on GTK and WPF (d65b9e6)
  • Force refresh of ListViewBase when an item gets added or removed (a324aed)
  • Leak caused by ButtonBase.Command (bf6b6e1)
  • Popup without IsLightDismissEnabled should not auto-focus (7272156)
  • Remove unused configuration files in templates (c834015)
  • TextBox GTK SelectionStart and SelectionLength (a95fce9)
  • Use wss for RemoteControlClient when on https (c4a7b4c)
  • Workaround issue #7899 (5e7baef)
  • Border: Adjust layering logic when using a GradientBrush as BorderBrush (9a01cbc)
  • dragdrop: Fix drag and drop support on skia (bf7e473)
  • dragdrop: Fix support weird behavior when reordering items while more then on is selected (5ecdd1a)
  • flipview: [Android] Fix IllegalStateException from FlipView (47dc23e)
  • flyout: Use Popup for light dismiss (d2b860c)
  • iOS: Fix support for UIElementCollection item replace (caae6b8)
  • iOS: MessageDialog programatically dismissal (8b1fc1f)
  • iOS: StatusBar Foreground for Dark Theme (a8abb0f)
  • pointers: Make sure SV alters only its own manipulations (8094fae)
  • skia: Fix support for UIElementCollection item replace (bd22523)
  • Skia_Gtk: Incorrect window ActualWidth and ActualHeight values on WSL and Linux (ab6fa95)
  • wasm: Failsafe on finalization of UIElement (d662bf1)
  • Adjust framebuffer host initialization sequence (7a8ffef)
  • Align Popup light-dismiss with WinUI (040acc4)
  • Android Samples app deployment to Android 12 (cafd91a)
  • Capture the DispatcherQueue on DependencyObject creation (9d7e399)
  • Changed default option string to All files (ce6a94e)
  • Disable VisibleBoundsPadding on Windows/WinUI3 (6ea6155)
  • Ensure that AppBarToggleButton's base.OnPropertyChanged is called (70c44e9)
  • FileOpenPicker should show file extensions similar to UWP (0b50263)
  • Fix ImageBrush.Stretch on Wasm (7ca6fcf)
  • Fix PasswordBox on Android not obscuring password (b1b7b87)
  • Fix TextBox/PasswordBox Foreground and add test for obscuring password (25072b1)
  • Invalid debug-only message (08ec732)
  • Invalid static resources test (1434c7f)
  • Only check Background on specific elements when hit-testing (c42f52c)
  • Properly resolve types in XamlReader when xmlns not common (3dd31b8)
  • Remove blue tap highlight on Webkit browsers (5b1ac08)
  • TextBox positioning and selection on GTK (85f24f0)
  • InfoBadge: Port bug fix and port tests (4b55a63)
  • net6: Adjust versions for net6-winui templates (dc876ac)
  • test: disable droid TestTextBoxReleaseOutUnfocused (775e854)
  • textbox: caret cursor and click focus area on wasm (c9cc765)
  • TryReadJsFloat updated to support decimal places (759a39e)
uno - 4.0.7

Published by jeromelaban almost 3 years ago

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 (https://github.com/microsoft/microsoft-ui-xaml/pull/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
uno - 3.11.6

Published by jeromelaban almost 3 years ago

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:

  • @pjgpetecodes for a Raspberry Pi tutorial
  • @thomasclaudiushuber, @xperiandri, for documentation updates
  • @MohammadHadi2031 for the SignificantDigitsNumberRoundersuport
  • @pkar70 for the support of GetPeerRadioAsync
  • @Jadhielv for dotnet new templates updates
  • @trungnt2910 for UIElement clipping updates
  • @workgroupengineering for Hot Reload performance updates

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 unoplatform#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
uno - 3.10.11

Published by jeromelaban about 3 years ago

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
uno - 3.10.7

Published by jeromelaban about 3 years ago

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:

  • Many code generation fixes, UI Fixes (@Youssef1313)
  • DeviceBluetooth, ToastNotification and related (@pkar70)
  • Source generation fixes (@mterwoord)
  • CompositionGradientBrush (Skia) (@VitezslavImrysek)
  • Templates improvement (@brianlagunas)
  • Templates improvements (@chingucoding)
  • Skia Window size APIs (@DZetko)
  • Android TextBox cursor color (@Hudney)
  • Documentation (@Abhishek-Sharma-Msft, @MohammadHadi2031, @robloo, @crogeniks)

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
uno - 3.9.1

Published by jeromelaban about 3 years ago

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!

  • Detection of Uno.UI and Uno.WinUI mixing (@workgroupengineering)
  • FileOpenPicker Settings identifier (@pkar70)
  • VS2022 template .NET 6 fixes (@LeftTwixWand)
  • Clipboard support for GTK and WPF (@trungnt2910)
  • Enumeration of ApplicationDataContainer (@DZetko)
  • Color.ToString() updates (@VitezslavImrysek)
  • GetNetworkConnectivityLevel for WPF (@ahoefling)
  • Linux installation documentation (@baskren)
  • Animated Icon support (@MartinZikmund)
  • WinUI ImageIcon (@MartinZikmund)
  • Roslyn based source generation error reporting improvements (@jeromelaban)
  • CachedFileManager support (@MartinZikmund)
  • Shapes rendering performance improvements (@cdb)

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)