github unoplatform/uno 6.4.43

latest releases: 6.4.133, 6.4.106
17 hours ago

Uno Platform 6.4 is designed to help you build faster and smarter.

It lands Day-0 support for .NET 10 and Visual Studio 2026 and provides a backbone for AI-assisted development in Uno Platform Studio 2.0.

In addition, there are tons of new improvements in 6.4. You’ll notice it immediately: the Uno Platform Status indicator that surfaces environment health inside your IDE, Skia rendering tuned for steadier, display-synced frame pacing with lower rendering overhead, Win32 windowing enhancements for polished desktop chrome, and WebView2 reliability improvements for hybrid UI.

Most importantly, Uno Platform and Uno Platform Studio now enable agentic development. In this blog we’ll address the main news on Uno Platform itself while the AI news are covered in great depth at Uno Platform Studio 2.0 announcement post.

Note

Read more on our blog post!


Here's the full change log:

Bug Fixes

  • DragView positioning (54d140d)
  • SystemFocusVisual render transform (c4ec9be)
  • Add detailed logging for WebSocket connection reset errors in dev server and client paths (9e69ed1)
  • Add missing [JSExport] attribute to Accelerometer.DispatchReading method (e61cfd2)
  • Add missing PointerDeviceType.Touchpad (4884b75)
  • Add missing GUID in .slnx (f972435)
  • Add missing persistence method for UIKit/Android (a8a0ca2)
  • Add padding on Window chrome when window is maximized (f0b06d8)
  • Address review feedback - add sample to projitems, remove accidentally committed file, make method internal (08649e6)
  • Adjust devserver options (61e4a12)
  • Adjust devserver startup (78c894c)
  • Adjust net10 private dependencies (a5c00b0)
  • Allow extending into titlebar on startup (e622590)
  • allow picking executables and files without extensions in Linux file picker (4416d94)
  • Allow snap layouts menu on maximize button (467f2c3)
  • Android allow reopening app after activity is backgrounded (c830bac)
  • app-launch: Dispose of _scavengeTimer to prevent resource leaks in ApplicationLaunchMonitor (cc11a72)
  • app-launch: Enforce Debug configuration for UnoNotifyAppLaunch target and improve error messaging (60e4e53)
  • app-launch: Ensure interception only occurs for debug builds in VsAppLaunchIdeBridge (a9ef47d)
  • app-launch: Make IsDebug optional and default to false instead of required (e58847c)
  • app-launch: Rename MSBuild task properties for consistent Uno-prefixed naming (b626a6d)
  • app-launch: Update endpoint to use encoded paths and align with new route format (a239cd2)
  • app-launch: Update telemetry event properties for clarity and consistency (3d89e97)
  • Apply extension on show (58207dd)
  • Avoid invalid binding in ComoBox (70e56e1)
  • Avoid invalid binding in FlyoutBase (3b05fc4)
  • Avoid invalid style references for XamlDefaultProgressBar (bf95068)
  • Avoid modifying the native clip on non-UI thread (371d2a7)
  • Avoid recreating Android native UI on application backgrounding (b120648)
  • Avoid unsetting icon (4973b8d)
  • Cache and filter events from native element host to ensure mouse events make it (20af63b)
  • CompositionTarget: use the latest XamlRoot bounds for drawing instead of the bounds from the last Render call (1d11997)
  • Correct namespace for TextBlock_ClipboardMethods files (ff8e3e8)
  • Correcting handling of directories for net9 / 10 (2126ba8)
  • Correctly adjust viewport dimensions for snap points (8a32f3c)
  • Correctly calculate dragging regions position (230b6e7)
  • Correctly extract display point (068684a)
  • Correctly handle key events in SwipeControl (38c1b5d)
  • Correctly position bottom and right items (153ccad)
  • devserver: Adjust for delayed starting (ff019ab)
  • do not throw when setting RenderPhase property (ee50933)
  • Don't generate HR workaround on using with aliases (01565fb)
  • Ensure TextBlock.Text can be set via Style (b9ec415)
  • Ensure default foreground brush is correctly initialized (cb8117f)
  • ensure GetCustomMarkupExtensionValue checks for nested extensions. (396cc40)
  • Ensure runtime selector uses net10 binaries (a320b0a)
  • Ensure top edge resizability (0002f3a)
  • first frame white flash (eb7aa13)
  • Fix invalid depdencies for IDE channel (fe5172e)
  • Fix invalid update from net9 to net10 (10ac374)
  • Fix optional UEDI for backward compat (0cc5d41)
  • Fix possible invalid error message (6f81602)
  • Headings for SK and GLCanvasElement (38bd287)
  • Improve error reporting from the XamlReader (9383dfa)
  • Incorrect TabView listview event (0d6234b)
  • Keep active visual state if no trigger is activated (65bf335)
  • logging: Ensure consistent naming for binlog files and remove redundant build log argument (3fd4550)
  • logging: Include assembly file name in error message for failed assembly info read (cc11309)
  • logs: Suppress WebSocket closure noise in logs (7be8c13)
  • Make ICOmmandHanlder async to be used through JsonRPC (5600378)
  • Only refresh visual state triggers if there is a trigger defined (ea4b71c)
  • pointers: incorrect Tapped coordinates when the original source of the pointer event is not the GestureRecognizer owner (565cd82)
  • Prevent copilot agent from committing dotnet-install.sh files (8b8a849)
  • Prevent NaN widths in TabView during layout timing differences (e547716)
  • Provide separate style for native vs. Skia (084aeb8)
  • remote-control: Improve assembly loading reliability and add new dependency resolution test (e0f1969)
  • remote-control: Replace recursive re-scheduling with single periodic timers for keep-alive handling (3feb2ad)
  • remote-control: Signal connection establishment once and handle keep-alive send exceptions (354bba8)
  • remote-control: use TimeProvider timers and stabilize launch timeout behavior (481c22c)
  • Remove dotnet-install.sh from .gitignore as requested (0214173)
  • Remove extra blank line in TextBoxView.skia.cs to resolve IDE0055 formatting error (674c1ae)
  • remove SG double bracketDepth check (3004214)
  • Remove trailing whitespace from TextBlock_ClipboardMethods.xaml.cs (line 36) (bf69322)
  • Rename namespace to resolve CS0118 TextBox type conflict (4b12c24)
  • RenderTargetBitmap: Don't clip the rendered element using its current parent layout slot (d2e40f8)
  • Replace explicit colors with theme-aware colors in TextBlock_ClipboardMethods sample for dark theme support (482bac0)
  • Reset drag rectangles to an empty array instead of null (da4a689)
  • Resolve WebView2 URI format error for virtual host mapped assets (b0061f5)
  • Resolve TypeScript compilation error in Accelerometer constructor (cafa22f)
  • Restore BuildHost folder on net9 (5a6844d)
  • Restore missing file (19d34ae)
  • Return null when TouchesManager is not initialized yet (82dd789)
  • scrollviewer: align scroll inertia behavior more closely to apple's impl (a43b4d8)
  • ScrollViewer: ViewChanged.IsIntermediate (d235649)
  • skia_ios: always loading lowest resolution image (b1caf06)
  • skia: closed flyout still linger on screen (cd6e999)
  • slider: thumb not being positioned correctly on reload (191e5c7)
  • Specify user data folder for WebView2 to prevent UnauthorizedAccessException (e668564)
  • Support both old and new illink.dll paths for .NET 10 RC2+ compatibility (888c73b)
  • Support for Computer folder as starting location (82d80e8)
  • Switch to async MakePersistentAsync in FileSavePicker (111830c)
  • tests: Remove unnecessary null-forgiveness operators (c514182)
  • TextBox: fix SelectionChanged and TextChanged event ordering relative to KeyDown/Up (b7798bb)
  • textbox: only propagate native HTML input state for the textbox currently in focus (0f2c9df)
  • trimmer: Fix IL2026 warnings around DynamicallyAccessedMemberTypes.All (d9dcb1c)
  • trimmer: Fix IL3000 warning in src/Uno.UWP (290bd21), closes #pragma
  • trimmer: Fix IL3050 warnings around Enum use (29f5236)
  • Update framework version condition for Uno.WinUI.DevServer targets (42fb4c5)
  • Update rolsyn to fix net10 support (19e345f)
  • Update src/Uno.UI.Runtime.Skia.WebAssembly.Browser/ts/Runtime/BrowserPointerInputSource.ts (3b29e05)
  • WebView local content mapping on Wasm (b3ac3eb)
  • Win32 FileSavePicker should create file if it does not exist (fe2defd)
  • win32: avoid rendering glitch on HWA environments when extending the window into the titlebar (56e4e35)
  • win32: Explain more GL setup failures (b278eb9)
  • win32: fix rendering when minizing the window (abd6b51)
  • win32: generate an initial frame with the correct size when starting up as maximized (d825cc4)
  • win32: Mutiple FileSavePicker updates (51ad9d1)
  • win32: out-of-screen-bounds areas of the window must be redrawn when they're no longer outside the screen (ec10f53)
  • win32: shaking when continuously resizing on hardware-accelerated dpi-upscaled environments (d979334)
  • win32: white flicker on the first frame on dark-mode systems (1e1ddf0)
  • Windows WebView2 Navigation to handle local and mapped URLs (cdeb9ce)
  • xamlreader: Don't fail on ItemsPanelTemplate inside a frameworktemplate (ebfad62)

Features

  • Add SkiaRenderer to schema (de53f1d)
  • Add BannerHelper for formatted console output (bec00d9)
  • Add basic AppWindowTitleBar.Height support (b3071ee)
  • Add basic support for preferred window min/max size (7b78a70)
  • Add comprehensive runtime tests for PasswordBox.PasswordChar visual validation (728231b)
  • Add conditional compilation for DataTemplate updates in sample app (3d5f39f)
  • Add extend into titlebar option to Samples app (a66c1b8)
  • Add ListView sample in DataTemplate update scenario (fcf0bdc)
  • Add localization strings for TitleBar (b23b76b)
  • Add manual test sample for TextBlock clipboard methods (5759450)
  • Add missing auxiliary non-client input types (08024cf)
  • Add platform condition attributes to all PasswordBox runtime tests (4d727ed)
  • Add runtime DataTemplate updates and auto-refresh for presenters (11368d9)
  • Add support for DefaultStyleResourceUri (e95131e)
  • Add support for conditional dynamic DataTemplate updates (c199717)
  • Add support for dynamic template updates in ItemsRepeater (7c5e992)
  • Add support for the uno.dev_server.restart command (1f573ee)
  • Add TemplateManager documentation and enhanced API for runtime DataTemplate updates (ae1e282)
  • Add unavailable feature notice for WinAppSDK in DataTemplate_Update_Sample (ffcdc08)
  • Add WebAssembly platform support to uno56netcurrent test project (0dee6db)
  • adjust devserver login (a215afc)
  • Adjust for multi-screen support (4f2c26e)
  • Allow default style retrieval by DefaultStyleResourceUri (45b252b)
  • app-launch: Add VsAppLaunchIdeBridge to integrate Play/Build events with app launch tracking (d429acf)
  • app-launch: Add IDE and plugin metadata support across launch registration and telemetry (a3e7149)
  • app-launch: Add new endpoint to register app launches via assembly path on /app-launch/{assemblyPath} for app launching registration. (b9b3008)
  • app-launch: Add retention handling for unmatched launches and testing coverage (38d094f)
  • app-launch: Add scavenging for stale launches and enhance connection tracking (b6905e6)
  • app-launch: Add support for tracking application launches and runtime connections in dev server (d967317)
  • app-launch: Add UnoNotifyAppLaunch MSBuild target for IDE integration and improve response handling (4eca719)
  • app-launch: Added new integration test to validate timeout behavior and corresponding telemetry event. (90f0a5d)
  • app-launch: Improve late-match classification for app launches (8c5b065)
  • app-launch: Include IDE version in app launch state consumer initialization (a7f26a6)
  • app-launch: Introduce VsAppLaunchStateService for deterministic app launch tracking (c0e15d3)
  • app-launch: Preserve original instance during state transitions and add debug metadata handling (17fb9ae)
  • app-launch: Refactor app launch endpoints and improve platform handling (5219c6a)
  • Correctly update drag regions on WindowChrome and layout changes (77b820f)
  • dev-server: Add AssemblyInfoReader and improve app launch connection handling (12b87aa)
  • Draggable regions (93effae)
  • Enable dynamic DataTemplate updates by default in user applications. (845fcfe)
  • enable method on CoreWebView2WebMessageReceivedEventArgs (c40207f)
  • Excluding Hot Design Stories in Release (3ee2a1d)
  • Handle other types of non-client areas in Win32 (b381527)
  • Implement PasswordBox.PasswordChar support for Skia (d6f6b53)
  • Implement state management for window presentation (6a4c7b8)
  • Improve file type filter handling in file open picker (e9db4fa)
  • Improved error reporting on server-side initialization error (37fb9fd)
  • Initial implementation of ExtendsContentIntoTitleBar (7251837)
  • Interactive chrome buttons (847355b)
  • Introduce ApplicationLaunchMonitor for correlating app launches to connections in the dev server (f1a0efa)
  • Log HR diagnostics to the console when devserver HR is enabled (0d6ee9c)
  • Make the drag view tooltip offset dependent on the pointer type (ee62bc3)
  • Min/Max window size implementation on WPF (270e2db)
  • Misc devserver updates (739c970)
  • nativeelementhosting: Z-order support (9fa1cee)
  • Notify AppWindow about Win32 window state changes (9124205)
  • Proper caption button hiding (0d82400)
  • React to window active state changes (9053615)
  • remote-control: Add dependency loading support and validate through tests (2bf14a1)
  • remote-control: Introduce configuration helpers for parsing and simplify command line handling (130d34b)
  • Report custom caption buttons correctly as non-client area (5796dd8)
  • Reset AppWindowTitleBar to default (5011382)
  • Restyle custom caption buttons to match WinUI (407c2d2)
  • Scale drag-drop positions for high-DPI support (abf89df), closes hi#DPI
  • Set min/max window size on macOS (0fbf22a)
  • Set min/max window size on Win32 (5b1032d)
  • Set min/max window size on X11 (308f858)
  • Support for AppWindow.SetIcon on Win32 (b43a9f2)
  • Support for DefaultFileExtension on Win32 (1952fb1)
  • Support relative icon path in SetIcon (ae2e8e2)
  • Support suggested start location in Win32 FileOpenPicker (41897ab)
  • Switch to .slnx (beb48c3)
  • telemetry: Enhance telemetry documentation with source links and property examples (1db41d4)
  • TextBox: SelectionChanging (5aa12b8)
  • udei: Add ability to forward commands from VSIX (51adbf4)
  • udei: Update contract of UDEI componennt to add a display name (8fe7f14)
  • Update SwipeControl styles to latest (42d1541)
  • Update TabView styles (8e37e20)
  • Update TabView styles to 1.8 (120b0f4)
  • Update commands support to match VSIX (62f66bf)
  • Update drag-and-drop test description (5ae8d9a)
  • Update WinUI controls to use SetDefaultStyleKey (51b2045)
  • Use only modern Accelerometer API, remove DeviceMotionEvent and device detection (1924eb0)

Performance Improvements

  • Avoid most SKPath allocations on X11 as well (e3f9d1c)
  • Avoid most SKPath allocations when calculating the clipping path (a324378)
  • Avoid some ephemeral SKPath allocations (ffa2afb)
  • Delete SKPictures deterministically (767cdb6)
  • frame paiting should not be tied to the dispatcher queue (e84b0f5)
  • Improve Win32 event loop (c55e1b4)
  • Reduce SKPath allocations for CompositionClip (b734536)
  • Remove TLS access for now (3b19362)
  • Remove unused SKPictureRecorder (3e6df8f)
  • Use shared SKPictureRecorder (b12ebb8)
  • use SKCanvasElement in Uno.UI.Svg and Uno.UI.Lottie when possible (f064db1)

Don't miss a new uno release

NewReleases is sending notifications on new releases.