With over 128 issues closed, Uno Platform 6.3 continues to raise the bar for cross-platform .NET development. This release aligns with Microsoft’s latest tooling while polishing the features you use every day and pushing Hot Design further as the only visual designer for cross-platform .NET applications.
Uno Platform 6.3 highlights:
- .NET 10 Preview support – Test drive Microsoft’s latest SDK and runtime today.
- Visual Studio 2026 ready – Full support for the new .slnx format and side-by-side compatibility with VS 2022
- WebAssembly breakthrough – Image decoding moved to WebWorkers means your galleries finally scroll smoothly
- TabView refined – The reliability LOB apps demand, with new sizing modes and non-closable tabs
- Hot Design productivity – Search the elements tree instantly, toggle visibility to hide design-time clutter
Note
- Please refer to the migration guide when upgrading to Uno Platform 6.3.
- .NET 9 remains the stable target for production apps. .NET 10 support is currently in RC and should only be used for testing and evaluation. For an up-to-date list of known issues when using .NET 10 with Uno Platform, please refer to our Health Status page.
- Extensions and plugins for all supported IDEs have been updated with important fixes. Make sure you’re on the latest version to stay compatible and keep your workflow productive with Uno Platform. Here are the related links: Visual Studio, Rider, VS Code.
Read more on our blog post!
Here's the full change log:
Features
- Add a top layer for input handling on iOS (eed794f)
- Add BannerHelper for formatted console output (8743ff0)
- Add comprehensive runtime tests for PasswordBox.PasswordChar visual validation (89d736e)
- Add contract for messages used by UDEI (73b7101)
- Add platform condition attributes to all PasswordBox runtime tests (d6b676d)
- Add support for ManipualtionMode=None (d72aee1)
- Add support for ProviderFromPeer (a4aa4d5)
- Add support for the VSIX channel (8173252)
- Allow zooming keyboard shortcut on WASM (23d8d55)
- Avoid listening to status bar changes when not needed (bf70fa8)
- Implement
MoveSizeOperation
(1aa8ef5) - Implement missing args (feea8c3)
- Implement PasswordBox.PasswordChar support for Skia (881c325)
- Improved error reporting on server-side initialization error (b6a9127)
- macOS: Expose UseMetalOnMacOS feature (3e538e4)
- Refactor HR init (add missing files) (cb9f3d9)
- Set tree render dirty on rasterization scale change (794d1e6)
- Shared
SKPicture
recording (ac367bc) - Split rendering on iOS (f39ca45)
- Switch to Svg.Skia (d6a2d8e)
- TabView upgrade to latest MUX sources (3b03370)
- udei: Adjust namespace (16be0ed)
- udei: Forward UDEI messages to VSIX + dev-server connection back timeout detection (b6d5b5a)
- udei: Make dev-server send UDEI notifications (f02ca3c)
- udei: Update contract (8e17f0b)
- Update
RatingControl
styles to winui3/release/1.7.3 (0b08ef6) - Update
RatingControl
to winui3/release/1.7.3 (9452e07) - Update
TabView
styles (92954da) - Update
TabView
styles to 1.8 (f9ed2c5) - Use shared
SKPicture
recording on macOS (3317c78) - Use shared
SKPicture
recording on WASM (c03a12d) TabView
drag & drop improvements (3f3a890)- udei: Add dev-server component messages in UDEI (6381d24)
- Update to .NET 10 Preview 7 (52a6f3e)
Performance Improvements
- allow rendering to proceed even if the UI tree is not fully laid out (bae9374)
- avoid ContinueWith in ImageSource.Open (5a3f492)
- images: load images in a web worker on wasm (8028488)
- only allocate routerArgs when it will be used (9efde6e)
- reduce sk_canvas_set_matrix calls (32889c2)
- visual: avoid SKPath creation for clipping when possible (2c4eb8c)
Bug Fixes
RemotControl.Server
should not requirenet10
when targetingnet9
(e662562)- Add detailed logging for WebSocket connection reset errors in dev server and client paths (098bed6)
- Address review feedback - add sample to projitems, remove accidentally committed file, make method internal (cdbe9ae)
- Adjust incorrect visual state condition (8463834)
- Adjust relative URI to ms-appx (4825d99)
- Avoid crash when iOS app is backgrounded (d5a1f50)
- Avoid exception in
ImageSource
implicit converter (5fa3760) - Avoid invalid sizing of
TabView
(a43bda8) - Call PrepareContainerForIndex for all items on Android (cfa4dcb)
- CI for missing window icon extension (2310208)
- Correct
CornerRadius
theme resources (734fbbb) - Correcting handling of directories for net9 / 10 (e869791)
- Correctly enqueue the invalidation (29049e1)
- Correctly pass-through input from native overlay layer (ab27ede)
- Drag UI is incorrectly scaled (3ef4bcf)
- Enhance error message for StorageFolder use in ApplicationData (fc471fc)
- Ensure scale is updated along with window size (96f4746)
- Fix invalid update from net9 to net10 (0f92182)
- Fix ManipRoutedEvtArg.Position to be relative to the Container (ae8451e)
- Fix optional UEDI for backward compat (c678e97)
- lint errors (1a2f5ae)
- linter errors (d33f75d)
- linux: crash when creating a GLX window (ff05e3f)
- ListView: Ensure the visual state of list items is reset when dragged outside of bounds (202f7db)
- macOS: external trackpad nsevents (1932484)
- macOS: samplesapp skia generic build (3a5ae92)
- nativedispatchersynchronizationcontext: always enqueue on Normal (3f3915a)
- nativeelementhosting: set the FillType of the native clipping path correctly (87db7c4)
- Prevent roslyn bug by always generating change content (0879ff2)
- Provide separate style for native vs. Skia (020baa9)
- Remove extra blank line in TextBoxView.skia.cs to resolve IDE0055 formatting error (0e522b9)
- Rename namespace to resolve CS0118 TextBox type conflict (4159fea)
- Replace missed elementStubType reference with static _elementStubXamlType (774e357)
- Restore BuildHost folder on net9 (09992ee)
- Return
null
whenTouchesManager
is not initialized yet (e6ac090) - SDK location notes (fac07e6)
- skia: TextBlock.FlowDirection (a1505b3)
- skia: TextBlock.RenderTransform reset when re-arranged (855ae05)
- textblock: invalidate render after arranging (15ab3cd)
- Update framework version condition for Uno.WinUI.DevServer targets (5a32a95)
- Update rolsyn to fix net10 support (ab52c37)
- Use
QueueInvalidateRender
everywhere (2ad8da9) - visual: InvalidateParentChildrenPicture does not invalidate self even when includeSelf is true (9843163)
- win32: Mutiple FileSavePicker updates (61c4a23)
- .NET 10 + Android + CS0246 fixes (1826f1b))
Reverts
BREAKING CHANGES
-
The following methods now throw
NotSupportedException
:Microsoft.UI.Xaml.ApplicationActivity.GetTypeAssemblyFullName(string)
(Android renderer)Microsoft.UI.Xaml.ApplicationActivity.GetTypeAssemblyFullName(string)
(Android+Skia renderer)Microsoft.UI.Xaml.NativeApplication.GetTypeAssemblyFullName(string)
For more details, see related change: Remove some use of
[Export]
(4d84ee3) and our migration guide.
Full Changelog: 6.2.87...6.3.62