Releases: unoplatform/uno
5.5.37
Uno Platform 5.5 - Automated App Packaging, .NET 9 RC2, OpenGL, WebView2 and more
Each release, we don’t just improve—we aim to revolutionize your development experience. For this release, we focused on drastically reducing the time and complexity required to package and distribute your cross-platform applications, in addition to a plethora of other productivity and performance features.
Our new App Packaging automates the process of bundling binaries, assets and dependencies into platform-specific installers for Linux, macOS and Windows on desktop. And, yes, that’s in addition to the seamless support we already provide for Mobile and Web packaging. It removes hours of frustration and dozens of manual steps which are typically needed when preparing your app for publishing, with just a few commands or clicks.
In addition to app packaging improvements, we are adding support for .NET 9 RC2 with WebAssembly, OpenGL Support, WebView2, New Skia Canvas, Combo Box and Templated Parent. It’s a big release, grab a coffee and read through our blog post.
At a glance, here are some of the new features:
- Linux Snap, macOS
.app
and ClickOnce packaging support GLCanvasElement
for DesktopSkiaVisual
/SKCanvas
supportWebView2
support on WebAssembly- .NET 9 RC2 support
- .NET 9 WebAssembly bootstrapper support
- Support for
ComboBox.IsEditable
,ComboBox.TextSubmitted
,ComboBox.SelectionChangedTrigger
- Many
TemplatedParent
propagation fixes - Support for
ColorHelper
andKnownColors
- In-App rating support on iOS
- Various DependencyObject performance improvements and memory usage reductions
You can find out the changelog below.
Features
- add a SkiaVisual that allows external use of SkiaSharp (5ff75bd)
- Add ability to configure timeout for file update to work on slow CI (7ab30cc)
- Add ability to send null old content to overwrite file (2cd7ad4)
- Add contract for to allow user interaction in IDE from the dev-server (fc7312c)
- Add discovery of dev-server add-ins (d73066d)
- Add extensiblity support in dev-server (753965d)
- Add message for to add a menu in the IDE (0433d09)
- Add Microsoft.NET.Sdk.WebAssembly support (d3312b2)
- Add more info (86dfaca)
- Allow disabling generated Application.UnhandledException handler (307acc1)
- Allow selecting custom values on Selector (8b6a5d3)
- Allow usage of HR indicator from external tool (2cf2f71)
- Bump Uno.Fonts to 2.4.5 (84a5e72)
- ComboBox.IsEditable (f491c97)
- ComboBox.TextSubmitted (a22f88c)
- Correctly indicate support for DesktopAcrylicController and MicaController (c4ee18a)
- Create IIdeChannel services and register it into DI to be usable by add-ins (2099883)
- Define constants for packaged vs. unpackaged WinAppSDK (2ad6248)
- GlCanvasElement on MacOS (363b8df)
- hr: Add ability to safely handle exceptions in UpdateFile (e5974da)
- hr: Add UpdateFile API (bcabbd2)
- Implement
ColorHelper
(73e0d61) - Implement
KnownColors
(0d604a0) - Implement GetColorNameResourceId (d494270)
- In-app rating request on iOS (672148d)
- InputPropertyAttribute (493ede4)
- introduce the ability to draw using raw OpenGL on skia (ff6e501)
- ios: add webview2 inspectable feature (f8c6ac7)
- iOS: validate for device version (918f34b)
- Make breaking on unhandled exceptions opt-in (48d42f6)
- New DependencyPropertyHelper class (844b8e2)
- Reduce allocations when using AsyncLock (+ remove all dependencies) (6a52019)
- Simulate preview key events for tests (61c80df)
- Support for ComboBox.SelectionChangedTrigger (0d016e2)
- Throw ArgumentNullException if XamlRoot is not provided to VisualTreeHelper (c53c785)
- Update API surface to WinAppSDK 1.6 (abb3fca)
- Update Sync generator to WinAppSDK 1.6 (49ecdae)
- wasm: Remove dependency on js invocation internal calls (c9f9377)
- WebView and WebView2 on WebAssembly (be3a0fb)
- webview2: add feature configuration for ios inspectable (15ed6af)
Bug Fixes
- ActionAppNotificationSettings
Launcher
missing package reference (7b7cb35) - Adjust AddIn path (54da54f)
- Adjust ContentPresenter automatic propagation (8ad591f)
- Adjust IsFocusable on Popup (228d4a1)
- Adjust ScrollContentPresenter measure to prevent infinite available size when necessary (565dd04)
- Adjust the target SDK version of Samples app on Android (dc9da22)
- Adjust TreeHelper to correctly handle native elements (06e9137)
- adjust workaround for android popuppanel layout (72ce4eb)
- android: Restore inheritance workaround for android (0222291)
- Avoid error on SamplesApp.UITests (0641657)
- Avoid infinite layout loop in MediaTransportControls (dbca1b0)
- Button: Command binding resetting on CanExecution exception (82846ba)
- codegen: Adjust mvvm toolkit properties discovery (e94127f)
- Compare the right font in OnFontLoaded when FontFamily contains '#' (3843646)
- Correcly await async RunOnUIThread calls (7866edc)
- desktop will always build as WinEXE ([30437b8](https://github.com/unoplatform/Uno...
5.4.43
5.4.39
What's Changed
- Revert #18381 for layout android issues by @jeromelaban in #18412
Full Changelog: 5.4.38...5.4.39
5.4.38
What's Changed
- fix: adjust workaround for android popuppanel layout (backport #18277) by @mergify in #18343
- Adjust devserver inclusion when WinExe is selected (backport #17974) by @mergify in #18376
- fix: Port "non-clipping subtree" logic from WinUI (backport #18336) by @mergify in #18361
- Backport #18193 and #18377 by @jeromelaban in #18381
- fix(Button): Command binding resetting on CanExecution exception (backport #18378) by @mergify in #18388
- fix: Do not destroy the singleton Window for single-window targets (backport #18369) by @mergify in #18389
- fix: Make AutomationProperties bindable (backport #18306) by @mergify in #18394
- Misc test updates (backport #18387) by @mergify in #18396
Full Changelog: 5.4.27...5.4.38
5.4.27
What's Changed
- Adjust HR error messages when the debugger is active (backport #18270) by @mergify in #18273
- docs: Miscellaneous documentation fixes (backport #18316) by @mergify in #18323
- fix(codegen): Adjust mvvm toolkit properties discovery (backport #18326) by @mergify in #18334
- fix: Ensure wwwroot assets are copied properly (backport #18300) by @mergify in #18310
Full Changelog: 5.4.22...5.4.27
5.4.22
We are introducing over 290 new additions in the Uno Platform 5.4 release, with a strong focus on performance and resolving issues for our paid clients. Some of you might not know this, but we sustain the Uno Platform open-source project through enterprise support, as described in this blog. This release primarily addresses critical client issues, while simultaneously improving the overall performance of Uno Platform apps.
Head over to our blog post for more information!
As always, thanks to our contributors:
- Documentation updates by @mcNets, @ashleykmm1, @baskren, @lindexi, @Cjhemmer and @ArchieCoder
- Performance updates by @KevinFerati
- X11 support Improvements for Windowing and background colors by @lindexi
Features
- 2-layer skia for GTK (d6493e7)
- 2-layer skia for WPF (7caa5d2)
- 2-layer skia for X11 (0af2c2b)
- Add
GridViewAutomationPeer
s (effa40a) - Add a generic Application.UnhandledException handler (f35388c)
- Add ability to not show the HR on-canvas indicator (917c03f)
- Add analyzer for missing packages when using ProgressRing or MPE (722b2e8)
- Add DiagnoscticsOverlay utility (fdfe38b)
- Add disagnostic indocator for hot-reload process (3d92130)
- Add entrance and exit animation of HR ui notif (ea10c3e)
- Add IsPointerCaptureRequired attached property (85abb78)
- Add ListBoxAutomationPeer (b2f4ff2)
- Add missing Windows.Graphics structs (8b52742)
- Add support for Keyboard Accelerator tooltips (5643e23)
- Add WPF SelfContained support (81022c2)
- add X11 support for reading DPI scaling from X resources (Xft.dpi) (83f1927)
- Adding new AppWindow APIs (c543197)
- Allow disabling generated Application.UnhandledException handler (621c298)
- always include Lottie on Desktop (41ed53a)
- android: Proper variable font support (2a53446)
- ApplicationDataCompositeValue (79fa08d)
- AppWindow Position and Size on WPF (7deb5fc)
- AppWindow Position, Size, Move and Resize on X11 (11d7217)
- Basic implementation for detecting layout cycles (f2b46b3)
- Bump Uno.Fonts to 2.4.5 (32102ee)
- devSrv: Prefer to connect on last known endpoint first (c8ebb9d)
- diags: Add ability for a diag view to send notifications (47bfa4d)
- embedding X11 windows as subwindows inside an Uno application (7202802)
- Font manifest (9f32857)
- hr: Improve perf and diagnostics per processing updates as batch (0a0d880)
- hrui: Always use notification for operations + add engine events to the log (a9e95bd)
- hrui: Improve HR indicator placement strategies (dacdfb4)
- hrui: Improve types output + open overlay by default (7935c03)
- hrui: Update HR notifications (8fc3672)
- imagebrush: add support for RelativeTransform on skia (2a0ed53)
- Implement
FlipViewAutomationPeer
(f536856) - Implement
GroupItemAutomationPeer
(3a5671a) - Implement
ListBoxItemAutomationPeer
(d28a0f7) - Implement
ListBoxItemDataAutomationPeer
(777a9d8) - Implement
ListPickerFlyoutPresenterAutomationPeer
(db69ab1) - Implement
RichEditBoxAutomationPeer
(43db136) - Implement
RichTextBlockAutomationPeer
(ca5cdd0) - Implement
RichTextBlockOverflowAutomationPeer
(a73304c) - Implement
ScrollViewerAutomationPeer
(c1707ef) - Implement
ScrollViewerAutomationPeer
(2b3ab69) - Implement
SelectorItemAutomationPeer
(a7a29f6) - Implement
SemanticZoomAutomationPeer
(1714da1) - Implement
SliderAutomationPeer
(b8041d9) - Implement
TextBoxAutomationPeer
(dd78821) - Implement
ThumbAutomationPeer
(9bfa9e9) - Implement
ToggleButtonAutomationPeer
(ef52c88) - Implement
ToggleMenuFlyoutItemAutomationPeer
(b515ef6) - Implement
ToggleSwitchAutomationPeer
(3f72be5) - Implement AppWindow Move and Resize on WASM (6abcdd8)
- Implement CreateDefaultValueCallback and PropertyMetadata factory methods (18e66f1)
- Implement font matching spec (e491dbf)
- Improve HR diag view (18cf119)
- Instrument dev-server to expose in diagnostics in client (8d2600b)
- Integrate the HR status (51f4ede)
- Internally implement
TextAdapter
(1028df4) - iOS: add fileopenpicker file limit (ce2d123)
- ios: add webview2 inspectable feature (1663761)
- iOS: FileOpenPicker limit multiple file selection (a19cf32)
- iOS: validate for device version (c499ac1)
- Make breaking on unhandled exceptions opt-in ([dbd23f3](https://github.com/jeromelaba...
5.3.31
Hello Rider lovers!! We are bringing many additions to Uno Platform in this 5.3 release, but the highlight is official support for JetBrains Rider, as well as improved Hot Reload experience, two new UI controls (ItemsView, SelectorBar), exciting new options for Fonts, and adding support for SkiaSharp 3 preview, to name a few.
We’ve also spent significant effort into further simplifying Uno Platform versioning, so that you can spend more time coding and less time fiddling with NuGet packages. Lastly, we are continuing support for .NET 9 Preview releases and retiring support for .NET 7 as it is now officially not supported by Microsoft any longer.
Visit our blog post for more details!
Here's an extended list of features included in this release:
- Rider Plugin support
- Open Sans is now the default font for uno targets
- In-app Visual Feedback for HotReload
- SkiaSharp 3 Previews support
- All of Uno Platform is now versioned behind the Uno.Sdk
- Uno itself is now build with .NET 9
- Improved project reload in Visual Studio 2022 on target framework change to avoid closing opened editors
- ExtendIntoTitleBar on WPF
- PreviewKey<Down|Up> on Skia Desktop
- ScrollIntoView with using non-virtualizing ListViews
- Layout cycles detection
ToolTips
are now enabled by default on Skia- Support for Implement
FlyoutBase.OverlayInputPassThroughElement
- Skia Desktop on Linux support for drag and drop from other windows
ItemsView
support- Modifiers on keyboard events on WASM
- MRT Core
ResourceLoader
support - Skia Desktop support for
Shape.StrokeDashArray
andCompositionStrokeDashArray
- Support for Linux framebuffer terminal redirection
- New analyzer to detect if
InitializeComponent
is missing in a code-behind file - Add Multi-Touch support on Skia Desktop on Windows
- Performance
- resw resources trimming
- Android startup performance improvements
- RenderTargetBitmap / Drag and Drop crash fix on Android
- Many rendering and interaction improvements to the Skia Desktop
TextBox
And as always, many thanks to our contributors:
- Documents updates by @Cjhemmer, @ArchieCoder, @lindexi, @emmanuel-ferdman, @abduelhamit and @mcNets
- A Skia Desktop performance update by @KevinFerati
- CI improvements by @ceddy4395
- Pointer tests by @lindexi
- Skia Desktop pointers (multitouch, mouse) improvements for Windows and Linux by @lindexi
Features
- Add basic support for ContentSite and ContentSiteView (05dffe7)
- Add Microsoft.Windows.ApplicationModel.Resources interfaces and enums (82de40b)
- add support for ExtendIntoTitleBar on WPF (e7fe6f9)
- add support for PreviewKey<Down|Up> on skia (5c34158)
- add support for ScrollIntoView with using non-virtualizing ListViews (2fde55c)
- Add support for the Flyou.OverlayInputPassThroughElement on all platforms (7357b94)
- Add Uno.ResourceTrimmingValidator (e9f7c2b)
- adding alias for ExtensionsCore (7a336be)
- Adjust WASM to use XamlRoot.RasterizationScale (841a0e3)
- Avoid faux linear gradients on borders on iOS and macOS (9c139f7)
- Basic ContentIsland RasterizationScale support (e0e51ee)
- Basic implementation for detecting layout cycles (461d1f3)
- ContentIslandStateChangedEventArgs (9f19c40)
- Enable ToolTips on Skia by default (fdaebd3)
- FauxGradientBorderPresenter (ea291b8)
- flyout: Add sample for FlyoutBase.OverlayInputPassThroughElement (7a88c76)
- flyout: Implement FlyoutBase.OverlayInputPassThroughElement (c54cc2f)
- Implement AreAutomationPeerChildrenReversed on UIElement (993b68b)
- Implement new focus-related types (ed17993)
- Implement ScrollItemAdapter (fbcbeaa)
- Implement ScrollItemAdapter AccessKeyStringBuilder (636260e)
- implement the X Drag and Drop (XDnD) extension to accept dragging from other windows (f5295cc)
- introduce a new BorderVisual to handle rendering the border and the background. (d7dbf39)
- ItemsView (49bff4d)
- make UnoFeatures ignore casing (e873d73)
- only "repaint" Visuals that actually changed (ec00c67)
- pointers: Add support of pointer rerouting on Android (a409065)
- pointers: Support pass through on iOS (11ad2a5)
- Port
ComboBoxAutomationPeer
(325ee6d) - Port FocusController (afea99b)
- Port FocusManager adapters from WinUI (05b5b4a)
- Port RootScale and related classes (30ab0b4)
- sdk: Add support for Apple Privacy Manifest (57fb9e3)
- Set modifiers on keyboard events on WASM (d42429b)
- set the Version (20e16f4)
- Simplified implementation of MRT Core
ResourceLoader
(ec0dc35) - skia: Support Shape.StrokeDashArray and CompositionStrokeDashArray (c3c499f)
- Support composition keyframe animations (5277f0d)
- Support for SelectorBar and SelectorBarItem (9068f91)
- Support for SkiaSharp 3 (18e3798)
- Support for UIElementCollection.Move on Skia (cd661d4)
- Support ThemeResource in TargetNullValue and FallbackValue (7514964)
- textbox: add support for up/down arrow keys preserving the caret "position" (550be6b)
- textbox: variable Tab widths i.e. Tab stops (8b7e727)
- UnoInitializeComponentAnalyzer (583210a)
- Update Common theme resources (8fe36a1)
- Update RatingControl to winui3/release/1.4.2 (79fabac)
- Update ToolTip styles (c99767e)
- Upri resources trimming (6c0935a)
- Use XamlRoot.RasterizationScale in GTK renderers (267be8c)
*...
5.2.80
We are proud to announce the .NET ecosystem’s first and only true Single Project solution, empowering developers with a unified approach across all 9 platform targets, spanning mobile, web, desktop, and embedded apps. This genuine Single Project approach simplifies development, accelerates build times, and facilitates platform-specific development, enhancing your productivity and efficiency.
In addition, the 5.2 release also adds:
• Enhanced Skia renderers, with X11 and macOS support for greater performance benefits and simplicity
• Our highly requested multi-window support
• Improvements to Uno.SDK by introducing Uno.SDK Features
• .NET 9 Preview support
This release is our biggest yet, with a record-breaking 2400+ commits—900 more than our last. It was a massive team effort, and we can’t wait for you to experience the improvements and enjoy a smoother, more productive development workflow.
See our blog post for the full announcement.
Community shout Out
Several community members contributed PRs to this release:
- Documentation updates by @mcNets, @gevart and @SimonCropp
- A Gtk update for background window color by @lindexi
- A Geometry render fix for Skia targets by @lindexi
- The ability to access android Intent for android pickers by @jp-weber
- Updates for SystemFocusVisual positioning by @TopProgrammer77
- Performance updates by @SimonCropp
Thanks for your contributions!
See below for the full changelog of this release!
Features
- add NativeOverlappedPresenter support for macOS/Skia host (ffd1bec)
- adding implicit namespaces (e10ffe3)
- adding implicit packages (e77cc64)
- adding support for AOT Generation (772e702)
- adding support for MacOS and X11 from Skia TFM (284da47)
- adding support for Single Project (3a85523)
- Adjust automatic profile selection (d1771aa)
- Allow freezing of TemplatedParent (6308a3c)
- enable skia target framework (7e6147d)
- Ensure that uno.sdk winappsdk apps include all Assets by default (a607d1b)
- Filter unsupported TargetFrameworks based on current OS (5bfc7de)
- handle more macOS cursors (0333a70)
- INativeOverlappedPresenter X11 implementation (acd6433)
- InteractionTracker pointer wheel support (5769d1e)
- more complete file/folder pickers for macOS/skia (8bf1f41)
- Port ScrollView (da22a4c)
- Provide Intent access for Android pickers (14d4923)
- provide override to disable default UnoResizetizer Items (aaf452e)
- Support for TeachingTip control (97e7b29)
- Support ternary operator and relational operators in ExpressionAnimation (927fed4)
- Update API surface to WinAppSdk 1.4 (7070d86)
- Update to WindowsAppSDK 1.5 (deb86f0)
- composition: IGraphicsEffectD2D1Interop + GraphicsEffectPropertyMapping + EffectType + EffectHelpers (aa7c067)
- composition: Implement AcrylicBrush! (2ec862b)
- composition: Implement AlphaMaskEffect and SaturationEffect + Samples + Refactor (aefc389)
- composition: Implement BlendEffect, CompositeEffect, ColorSourceEffect, and OpacityEffect + Samples (4bf9313)
- composition: Implement ColorMatrixEffect + Sample + Performance improvements (2f4b39d)
- composition: Implement CompositionBackdropBrush (260ebeb)
- composition: Implement ContrastEffect (+ Sample) and ArithmeticCompositeEffect (faf0efd)
- composition: Implement CrossFadeEffect + Sample (c290e67)
- composition: Implement DistantDiffuseEffect + Sample (6a153b5)
- composition: Implement DistantSpecularEffect and SpotDiffuseEffect + Samples (be859be)
- composition: Implement ExposureEffect + Sample (85b301b)
- composition: Implement GammaTransferEffect + Sample (57bcce9)
- composition: Implement grayscale effect + sample (2273c1f)
- composition: Implement HueRotationEffect and TintEffect + Samples (1b3e7e3)
- composition: Implement invert effect (82b8084)
- composition: Implement LuminanceToAlphaEffect and LinearTransferEffect + Samples (3f976ba)
- composition: Implement property listener/updater for the AcrylicBrush + Refactor (81146cb)
- composition: Implement SpotSpecularEffect, PointDiffuseEffect, and PointSpecularEffect + Samples (f53b239)
- composition: Implement TemperatureAndTintEffect + Sample (93643a3)
- composition: Implement Transform2DEffect, BorderEffect, and SepiaEffect + Samples (429bf99)
- composition: Implement WhiteNoiseEffect + Sample + Win2D + Refactor (3dc1fc2)
- composition: Initial work on Composition effects (757dd57)
- composition: More work on Composition effects + working sample (545004e)
- composition: re-add ArithmeticCompositeEffect + Docs (a668ad0)
- Add a simple XAML Playground sample (a4c145a)
- Add AppWindowChangedEventArgs (8408032)
- Add AppWindowPresenter (2485330)
- Add manual tests only filter to Samples app (1ed1e44)
- Add Microsoft.UI.Windowing enums (e0c850b)
- add multi-window support for macOS/skia (96f4bbf)
- Add Skia generic builder (160613b)
- add support for file pickers in X11 (c6470ae)
- Add support for PHPicker on iOS (f0e364b)
- add support for saving files in X11 (d0f78d5)
...
5.1.31
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
TextBlock
support forIsTextTrimmed
andIsTextTrimmedChanged
- Performance
- Memory leaks improvements (NavigationView, RatingControl)
- Animations performance improvements
- Memory allocation and Boxing reductions in DependencyObject
- StatusBar performance for Android
- TextBlock 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 ...
5.0.19
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 forImage
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
- Avoid native
- 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...