Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
6.1.34 source code.tar.gz | 2025-07-14 | 64.7 MB | |
6.1.34 source code.zip | 2025-07-14 | 81.2 MB | |
README.md | 2025-07-14 | 50.0 kB | |
Totals: 3 Items | 145.9 MB | 5 |
Two months ago, we launched our most monumental release yet: Uno Platform 6.0. It introduced a unified Skia rendering engine for Uno Platform across all target platforms and officially declared our premium tooling, Uno Platform Studio, as generally available. Together, they streamline your .NET development, allowing you to build cross-platform .NET apps in record time.
Two months may seem like a long time (and yes, we took a bit of a breather after our 6.0 release), but even during that time, our team and community still managed to finalize over 300 pull requests, refining previous releases and adding new features.
Read more on our blog post!
Here's the full change log:
Features
- Add
__DESKTOP__
constant (f64ab72) - Add
.desktop.cs
suffix support (de5f220) - Add
MediaPlayerElement
Uno Feature as alias toMediaElement
(9023f7f) - Add ability to have multiple direct-manipulation active in parallel (a058781)
- Add Cookie handling support to WASM runtime (ea10cc9)
- Add File System Access API support check to WASM (1174953)
- Add host builder support to WebAssembly (2de67e3)
- Add hosting support to Apple UIKit (bcf25dd)
- add runtime tests (c341757)
- Add SKCanvas Uno Feature (df51ad6)
- Add support for InputMode and EnterKeyHint on WASM (e9eed2d)
- Add three-state theme switcher (b6562b5)
- Add WebView UnoFeature for parsing (3dd1181)
- Adjust
DragView
template to match tooltip design (db36453) - Adjust SkiaSharp preview references (35d56b6)
- Allow customizing UIApplicationDelegate (635288e)
- allow debugging in HR (mono runtime) (29296d8)
- Allow delaying the splash screen dismiss until Window content is loaded (0e20b59)
- Automatically include WebView2 Windows with the WebView feature (6cd42dc)
- Bump compilers version (1262c40)
- CommandBarFlyout (e0d3bd6)
- CommandBarFlyoutCommandBar (442290d)
- CommandBarFlyoutCommandBarAutomationProperties (e8b79b2)
- CommandBarFlyoutCommandBarTemplateSettings (16716da)
- Correctly reference Graphics2DSK (9a2bcb5)
- devSrv: Make VS also use csproj.user file for dev-server port config/discovery (d094b7b)
- fps indicator (0b42690)
- gestures: Improve gesture recognition by using an history of pointer points (1d6d5a0)
- Improve the focus/scroll interaction in
ScrollViewer
(a7f31df) - Include resizetizer on Samples app Desktop (bfcecd7)
- Lower logging level of "pointer already being processed" (babc504)
- Make the composition timer configurable (+ code cleanup) (39bfee3)
- Mark legacy
FocusManager
methods asObsolete
and non-editor browsable (87881ab) - perf: Improve computation of UIElement transform matrix (9958d8d)
- Persist FPS indicator visibility setting (19af1c7)
- Port AppBarButtonHelpers from winui3/release/1.6.4 (ae680e0)
- Propagate
Popup
ZIndex
toPopupPanel
(076fedb) - PropertyPath port (9628bb6)
- Render sync'ed inertia processor (d5d7008)
- Samples app should match OS theme by default (e00e819)
- scrolling: Customize scrolling inertia per OS (c059002)
- scrolling: Fine-tune touch scrolling inertia deceleration (d50b089)
- skia: collapse visual subtrees into one SKPicture when the subtree doesn't change for a bit (c95db1a)
- Start font preloading early on all platforms (dbcd3b4)
- Support for
FlyoutShowOptions.ShowMode
(8d8408a) - Support for InputReturnType on UIKit (055139d)
- Support InputReturnType on Android (04a767c)
- Support InputReturnType on native (7132863)
- TextBox: Support for EnterKeyHint on WebAssembly (ee977ab)
- TextCommandBarFlyout (4c78606)
- Update AcrylicBrush resources (c7383e5)
- Update app bar button automation peers to winui3/release/1.6.4 (b0f9d99)
- Update AppBarButton styles (48d7faf)
- Update AppBarButton to winui3/release/1.6.4 (2c8ef67)
- Update AppBarSeparator to winui3/release/1.6.4 (52d2369)
- Update AppBarToggleButton to winui3/release/1.6.4 (a5c9343)
- Update NumberBox helpers to winui3/release/1.7.1 (86dfa45)
- Update NumberBox styles to latest (43d8b9e)
- Update NumberBox to winui3/release/1.7.1 (8ba0400)
- Update references to HarfBuzzSharp (0da1a84)
- Update SkiaSharp and HarfbuzzSharp to stable (8abed42)
- Update WinUI extracted resources (a03bb3b)
- Use app builder for WebAssembly (0814794)
- Use host builder on UIKit (aa18418)
- Use proper WinUI string resources for
StandardUICommand
(22a2874) - Use ShortcutManagerCompat (6bdfd45)
- Validate the window has been associated with managed counterpart (1a0a8f3)
- win32: support GLCanvasElement (48524c4)
Bug Fixes
Handled
virtual key was not correct (6f8dd5b)IsEnabled
is not displaying correctly on Android (a5c4265)UpdateTemplateSettings
should not override (dc91fa4)- Add missing linker attributes for generated code (bc85613)
- Add missing Window and XamlRoot setters (9abecaa)
- add permission for skia sample (3860239)
- add phone state permission to sample app (c5382c8)
- Add top level error handler for pointers (0f6ec72)
- Adding check that Desktop folder exists (81067ce)
- Adds support for standard protocol activations on wasm (37730e3)
- Adjust
SkiaSharp.Views
inclusion (de2cfbb) - Adjust aliased inclusion of WebView2 (e31854f)
- Adjust ApplicationActivity initialization (74f0de4)
- Adjust caret display on initial tap (99d13b9)
- Adjust debug logging for iOS devices (7ee67df)
- Adjust en-ES language code (95dc80c)
- Adjust focus handling on RadioButtons to avoid obsolete methods (cf47257)
- Adjust font preloading log level (c924be8)
- Adjust for linker dependency ordering (5cb264a)
- Adjust for merge, update styles (cf63c3b)
- Adjust image loading on WebAssembly (2b6726b)
- Adjust initialization on iOS (60bb6a0)
- Adjust log level for HR message (d433a22)
- Adjust namespacing for FontFamilyHelper (df10b62)
- Adjust NavigationView to avoid obsolete focus methods (b4afc54)
- Adjust project output type detection (433787b)
- Adjust Splash Screen on Android (continued) (ce10d04)
- Adjust splashscreen for delayed window.activate (9561cc4)
- Adjust SplashScreen on Android (4a32753)
- Adjust svg.skia dependencies (2fb8083)
- Adjust wasm host builder location (378bb19)
- Adjust workaround for PlatformTarget inclusion for WinAppSDK WebView2 (097e9a8)
- android null backgroundcolor (d7c1c18)
- android padding and iOS landscape (b2602a5)
- android: Pause drawing when not rendering (78ee235)
- AppBarButton and AppBarToggleButton fallback (fea03e3)
- Apply Foreground on WASM (e50ced3)
- Attach content view just before pre-draw listener is removed (6fb1e61)
- Attempt to make scrolling smoother (d452b53)
- Avoid blue rectangle overlay on iOS input (7fba9f5)
- Avoid crash due to early binding application (88f1a92)
- avoid crashing in software rendering when minimizing (852f7bf)
- Avoid duplicate InitializationCompleted (327704f)
- Avoid GetFocusedElement() in platform-specific files (9d9c3fa)
- Avoid keeping font manifest stream open forever (a3f2d29)
- Avoid usages of GetFocusedElement() in native UIKit window (7db09ec)
- Avoid using GetFocusedElement() in WASM (de86a46)
- BackgroundTransition: keep rendering frames as long as a transition is active (5d9c19d)
- Ban FocusManager.GetFocusedElement() (6163c0b)
- bitmapimage: do not cache failed loading tasks when they fail because they were canceled (ee96ebc)
- blurry splashscreen logo (5d5ca00)
- border: fix anti aliasing for rounded corners (92196ab)
- calculate y element position only for skia (0dd9831)
- Change dragging glyph to align closer to WinUI (f4f3522)
- combobox: dismissed combo cannot be reopened (c6924e9)
- ComboBox: updated selection not scrolled into view (1ff0910)
- CommandBar: moreBtn click handler - appBar not responding to clicks on mobile (4848159)
- CompositionEffectBrush: avoid infinite invalidation loop (5ef3b94)
- considerer element current position when bringing into view (e52b4a1)
- ContentDialog: full-size dialog being cut off at bottom (e2692ad)
- Continue AppBar change only in case
IsOpen
has not changed (755dbff) - Correctly handle newline on WebAssembly (0b1bded)
- Correctly package and publish X11 WebView (403b68d)
- Create RelativeLayout earlier (c458312)
- Create root layout on Start (27a6797)
- Default
FlyoutBase.ShowMode
should beStandard
(976ed28) - Delay rendering (67cbf65)
- Delay splash screen on UIKit native (fc8b6f2)
- Delayed launch on UIKit continued (127a571)
- devSrv: Save port only in startup project (25e23af)
- Diff Uno.UI.Runtime.Skia package (eea3886)
- directManip: Make sure SCP get scroll delta before RefCont (cc4d953)
- directManip: Make sure tnteraction trackers (Refresh container) does not get manip delta already handled (2b228e4)
- directManip: Prevent interaction tracker to intercept all pointers even when not a manip + without raising pt cancel event (05bf7cb)
- Do not access element until initialized (4d02bb7)
- Do not enable FPS counter by default (c9e12fa)
- Do not uncheck the
RadioMenuFlyoutItem
that was just checked (15d824c) - Don't fail EmbeddedResourceInjector on missing symbols (83f582a)
- Don't fail on treeview node keypress (c2fd659)
- Don't refresh the textbox caret when unfocused (74c4e2f)
- droid mpe rewinding from seek (512824e)
- droid: find next tab element (72815b9)
- droid: keyboard flickering on skia (b821f41)
- droid: keyboard not hiding on onfocus (c796ae5)
- droid: WebView insets when Edge-to-Edge (b9a5fd2)
- Enhance robustness of EnsureFocusedElementInViewPartial (686e994)
- Ensure
IsEnabled
visual states are properly reflected inTextBox
(2470474) - Ensure
UpdateLayout
executes forCalendarPanel
(43531a1) - Ensure
XamlIslandRoot.GetSize
is always up to date (7c23077) - Ensure a SynchronizationContext is available for browser events (e5230de)
- Ensure Carets are fully unloaded on unload (d2e8a49)
- Ensure primary commands are accessible when secondary commands are shown (4e5699b)
- Ensure that MarkupExtension search behavior is consistent with winui, and prioritize classes with Extension extensions (db31092)
- Ensure UIKit calls base window wrapper (7b669eb)
- Ensure WUX version of CommandBarFlyout classes is marked as obsolete in favor of MUX (a44fab1)
- Fail more explicitly when BrowserHtmlElement APIs are used with an invalid id (0ec7e6d)
- filepicker: adjust FileChooser portal version check on Linux to also include the backwards-compatible version 4 (3bd3f8d)
- Fix failed to detect plugin on large solutions (d8a0a28)
- Fix inertia processors init rules differs between ShoudlStart and effective Start (3ce6eb5)
- Fix InputInjector not using right pointer ID (71ff2ea)
- Fix invalid default value for composition inertia (dbd5956)
- Fix invalid scroll when receiving lot / simulated inertia pointer scroll events (1fbdd56)
- Fix multi // manip mixing pointers (4dbb809)
- Fix multiple instance of dev-server can be started when re-using VS sinatnce with multiple solutions (ed04623)
- fix native element clipping on android when the clip is empty (d914c41)
- Fix pointer and keyboard events not raised on CoreWindow (811a853)
- Fix port already in-use detection not working (16ba62c)
- Fix possible re-use of an already used port (2e8f5ef)
- flipView: Fix FlipView not considering velocity/inertia to flip items (da865d7)
- Force loading of content on unit tests (52a20cb)
- glcanvaselement: hanging when resizing or moving the window (d252bbe)
- Hide full screen button on MPE (9c4a26d)
- hr: Do not report error if known to not be problematic (f119e0b)
- hr: Fix HR not working in Popups (fa8eade)
- imagesource: image loading on multi threaded wasm calling OnOpened on a non-ui thread (be5c9ba)
- Improve focused element retrieval logic (2762760)
- Improve font preloading logic (95368ea)
- Improve native clipping on iOS (b8bcea6)
- improve null safety for Window.CurrentSafe (d3bb2e1)
- Include Skottie on all Skia targets by default (79ba614)
- Include theme change (a5108e2)
- InlineCollection: return up to date PreorderTree values (773be72)
- Invalid option (ffc8459)
- invalidate Visual.TotalMatrix when changing parents (22208da)
- iOS: adding native view multiple times (37acdbf)
- iOS: Adjust extended splashscreen fade-out (a7ac7aa)
- iOS: crash focusing input multiple times (d492ab9)
- iOS: input keyboard flickering (a7639de)
- iOS: input text commands (fd7e22e)
- iOS: keyboard flickering on inputs (174d2da)
- iOS: skia overflow invalidating render (cfde757)
- Issue templates (ca66005)
- linux: only init DpiBootstrap on Windows (d554515)
- macOS: app bundles must uses the Resources folder (49df72d)
- macOS: apply clipping only if native element has been arranged (a1f5c6a)
- macOS: fix resizing windows (bottom) (6e165f8)
- macOS: Route keyboard modifiers changes from native to managed (bf5c3fc)
- make initial window bounds rescale with DPI scaling on Windows (d86e134)
- Make the test independent on header height (e3bd434)
- make wglMakeCurrent checks log errors instead of throwing (8301d19)
- MediaPlayerElement should not animate on resize (e42cba4)
- MenuFlyout sub menu sometimes stays open (73e0468)
- missing FontFamily (fe4740c)
- MPE control buttons are not centered (554d85b)
- mpe: adjust coordinate translation on win32 (20ad804)
- mpe: do not keep win32 main loop running after shutdown (5bd90a1)
- mpe: factor scaling in win32 pointer events (b311be6)
- mpe: fix coord translation between vlc window and uno window on win32 (6a1e985)
- mpe: fix rewinding and replaying videos after playback ends (0528087)
- mpe: flickering on VLC-backed implementations (127dca3)
- mpe: scrubbing performance (cdb7230)
- mpe: win32 MPE severely flickering (4d5e8a3)
- Namespace and logic in ProgressBarAutomationPeer (313d2f2)
- Native clipping on iOS (abf435f)
- native element clipping was only applying to the first element on Windows (9de170d)
- nativeelementhosting: default to zero when given infinite bounds on measuring (15401a9)
- nativeelementhosting: double counting element alignment offsets (8d2e35b)
- only android 15 needs insets to be reset (374c1d5)
- Only async OnLaunched on WASM (6f8ab03)
- Only close if
isOpen
istrue
(106ec98) - pointers: Resotre multi-touch support (62016e7)
- Prevent temporary TextBox selection reset on text change (5fb513d)
- Properly initialize application for unit test (d01719c)
- reg: Adjust direct manip coercion logic (f124658)
- reg: Fix build (6bf72ea)
- reg: Fix cannot swipe multiple items in FlipView by code (d527d1a)
- reg: Fix direct manipulation taking over UIElement's manipulation (bdfca6e)
- reg: Fix failing tests (26f8c40)
- reg: Fix invalid coordinate computation for UIElement transform (14c7802)
- reg: Fix non commutative matrix factor (9eb3634)
- reg: Fix non-skia build (736cfdb)
- reg: Fix support of the inertial direct manipulation completion / resuming (cf97121)
- reg: Fix support on mixed UIElement manipulations and direct manipulations (8db90aa)
- reg: Fix unit tests not passing (d0c7d64)
- Remove duplicate render timer (f395480)
- Remove duplicated input layer (1518fe3)
- Remove predraw listener only after content view is attached (1b6e673)
- remove privateassets="all" from mauiembedding bits (30b1825)
- Remove Skia Wasm WebView border (9c18ee3)
- Remove Uno.UI from bug report template (1477d20)
- remove unused variable (399668f)
- reset native clipping on macOS (a7fbcbc)
- Samples request (48e5258)
- scrolling to focused view (2285e1f)
- scrolling: Fix tap not working when nested in ScrollViewer (3b4d80a)
- scrolling: Increase frame rate of dependet animations (92ed190)
- scrollViewer: Fix inertia not behaving properly on nested scroll viewers (93e904d)
- scrollViewer: Fix invalid event unsubscribe causing handler to be invoked multiple times (236b938)
- ScrollViewer: invalid Extent when hosting TextBlock with Margin (49aa8ee)
- setting null backgroundcolor first (ace898e)
- SKCanvasElement is not yet available on WinUI (60cb0f8)
- skia mobile StatusBar styling (5538014)
- skia: Adjust xaml trimming sequencing (28382b5)
- skia: improve image downsampling (0d979e7)
- skia: invalid package validation for skia renderer (1f90248)
- skia: make sure the UI tree is clean before rendering (b86b095)
- skia: Textbox content inherits textblock styles (f20b4b0)
- skiawasm: TextBox paste should use the native paste not the managed one (c2b5fe1)
- SplitView.OpenPaneLength having no effect (9a27edf)
- statetriggers: evaluate StateTriggers before the first layout cycle (68141d4)
- swipe: Fix swipe control crash (5fcab91)
- Target framework override for WinUI (ddf455e)
- textblock: adjust rendering offsets to match Padding (ed82587)
- textblock: invalidate the inner TextVisual whenever the TextBlock changes layout (3426285)
- TextBlock: when measuring, always return text size even if bigger than available size on WASM (a508b93)
- TextBox: fix MaxLength to work correctly with paste (c823cfa)
- textbox: fix shortcuts using ctrl instead of cmd on wasm on macOS (e7e035c)
- textbox: keep TextBox from being scrolled away when focused with a touch pointer (8a5f1dc)
- textbox: keep textbox knob popups above all other popups (5d5584a)
- TextBoxView should only be created on StartEntry (6f46758)
- The default resource dictionary theme should be Default (Dark) (672f4c7)
- ThemeResources: update theme bindings even if ActualThemeChanged throws somewhere in the tree hierarchy (ae1446f)
- Update status bar on theme change Android (332e765)
- Update XamlFileGenerator.cs (e326d7a)
- Use CompositionTarget for textbox scrolling (7027598)
- Use OpenSans in HR app (3cf3fbf)
- Use render timer to update the TexBox scrollviewer (59b176b)
- Use socket to get same behavior as kestrell (b3818f0)
- viewmanager: improve focused element retrieval logic (9ce9e93)
- visual: fix wrong canvas matrix when rendering inside a VisualSurface (6838a95)
- visualstates: activate visual state StateTriggers correctly on first load (412f015)
- visualstates: prevent InitializeStateTriggers from being called on every measure (76b16f0)
- vs: Adjust for skipped profile/target changes (225a5ee)
- wasm: Don't show the VS HR indicator (588bd85)
- wasm: images are sometimes corrupted (19e9ded)
- wasm: init svg with clippath on first render (4b90f4d)
- WASM: remove the border line and blue focus, adjust the height of WebView2 (ffa57ab)
- wasmskia: use webgl to load images instead of the 2d Canvas API to work around Skia alpha-premultiplication bug (207ed15)
- webview: avoid crashing and add better logging when WebView is not available on win32 (5b4ebd3)
- webview: avoid flickering on webview initialization on win32 (50c71ff)
- WebView: change the Microsoft.Web.WebView2 package alias to match the one in uno.sdk (84b79ad)
- win32 sizing errors on application startup (98dcee0)
- win32_dpi: Add DPI awareness support and improve XAML method naming (f0c8d93)
- win32: avoid showing an initial white frame on startup (f88d07a)
- win32: fix typo in SetWindowPos error detection (4ffdc71)
- win32: folder picker submit button text (2097b5f)
- win32: improve native clipping stability (2ae39da)
- win32: prevent render cycle from being reentrant in some cases (271513e)
- win32: setting a full screen presenter does not work immediately after window activation (7144235)
- win32: touchpad horizontal scrolling (61f7608)
- x11: check for libvlc before registering MPE extensions (3d947a8)
- X11: fix libvlc check on startup (5f9d090)
- x11: prevent window from flickering when resizing (3013c72)
- x11: setting a full screen presenter does not work immediately after window activation (c29e1da)
- xamlparser: leading white-space in text-literal (a972750)
- xBind: Fix TOC link that has been leading to a 404 file not found (d197946)
Performance Improvements
- Adjust skia redraw frequency (630cc24)
- airspace: do not set the native clip path if it did not change (dc01b3a)
- avoid MatrixTransform allocations when hovering over TextBlocks (af44ece)
- Centralize CompositionTarget (b09205d)
- Don't requeue on choreographer (f96539e)
- images: use mipmapping when downscaling instead of bicubic or Lanczos samplers (2db9b69)
- Implement DependencyPropertyChangedEventArgs pool (3244967)
- macOS: remove reflection to create GRContext (40a85f5)
- mpe: eagerly load vlc binaries (fde24b5)
- Reduce HandleDictionary access while segmenting runs (b50f64d)
- Replaced FindIndex in RecyclePool with For loop (7f941fb)
- skia: Cache UseLayoutRounding (ba7c2bf)
- skia: prevent unmanaged image allocations from growing arbitrarily without GC collections (cbe2102)
- skia: reduce SKCanvas.SetMatrix calls (f19a603)
- split the rendering cycle on X11 to paint and composite on 2 different threads (5d468d4)
- wasm: Fix render loop queueing race condition (4f41ae4)
- wasm: load images using the browser Canvas API (1879269)