# Avalonia: what changed from 11 to 12 - Product: Avalonia (https://whatsnew.fyi/product/avalonia) - Vendor: AvaloniaUI - Range: changelog entries numbered after 11.3.20 up to and including 12.1.2, stable releases only - Entries below: 6 releases (newest first) - Resolved: 11 is 11.3.20 and 12 is 12.1.2, the newest stable release of each major we track - Carrying security changes: 1 · CVEs mentioned: 0 · Mentioning breaking changes: 0 · Removing or deprecating something: 0 - Page: https://whatsnew.fyi/product/avalonia/compare/11...12 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (102 changes, grouped by kind) ### Added #### 12.1.2 (2026-09-02) - Add TextInputOptions.HintLocales - Implement VerticalContentAlignment for DatePicker and TimePicker - Add :empty pseudoclass for ContentControl - Add Content attribute to ContentPresenter - Support TextInputOptions.IsSensitive and ContentType Pin on Android - Implement VoiceOver support on iOS #### 12.1.1 (2026-07-29) - Add ToolTip.ShouldUseOverlayLayer attached property - Allow single parameter with any type when binding to a method - Add UseWaylandWithFallback option - Expose AutomationId as resource-id for Android automation #### 12.1.0 (2026-07-09) - Allow setting ThemeVariant to Default to reset theme to system on Android - Allow Dispatcher to be converted to a TaskScheduler - Add Scrollbar context menu - Add custom CalendarDatePicker date parsing to allow for multiple user input formats - Implement TableView control - Implement IStorageProvider.OpenFileWithResultAsync - Implement Bitmap.Save with a format - Implement Win32Properties.WindowCornerPreference - Implement automatic fps detection on X11 - Implement XDND drag-and-drop support for Linux - Implement Wayland protocol support - Add platform feedback API for sound and haptic feedback on Android and iOS - Create Avalonia.WinUI for initial WinUI embed support #### 12.0.5 (2026-06-23) - Implement Unicode word segmentation and update to Unicode v17 - Expose Calendar day button selection state to automation - Expose menu item toggle state to automation - Support Value pattern on editable ComboBox automation peer - Add AX BringIntoView/AXScrollArea role on macOS - Expose ScrollViewer scroll bars to accessibility on macOS - Report read-only value state to accessibility on macOS - Expose tree item selection to accessibility on macOS - Expose placeholder text as the AT-SPI placeholder-text attribute on X11 - Add support for hover events on Android - Add sleep timer option to Headless #### 12.0.4 (2026-05-28) - Add missing AutomationPeers from built-in Controls - Add accessibility events for expand and collapse events on macOS ### Changed #### 12.1.2 (2026-09-02) - Preserve current Animation progress if SpeedRatio or PlaybackDirection changes - Propagate Popup.IsHitTestVisible to IPopupImpl to skip hit-testing popups on the OS level if available - Don't build the selected text just to check whether a selection exists - Enable picking .app-packages as a folder on macOS - Select a KMS-capable DRM card automatically on Linux #### 12.1.0 (2026-07-09) - Remove obsolete int32 limit on DispatcherTimer.Interval - Bump MicroCOM and use source generators - Allow attaching a platform-specific event cookie to platform events - Align Touch and Pen capture semantics with Mouse - Disable region dirty rect clipping by default - Enable stencil buffers by default with configurable option - Support rendering at max refresh rate of current displays on Windows #### 12.0.5 (2026-06-23) - Unicode and text layout optimizations - Enhance Roslyn-compiler visible metadata - Fall back to pixel location when GetPointerDeviceRects is unavailable - Synchronize Metal drawable presentation on macOS #### 12.0.4 (2026-05-28) - Bump ANGLE version and sign native binaries - Update XML documentation to reflect correct type references in Avalonia.Controls project - Align Touch/Pen capture semantics with Mouse - Fire property-changed events when AutomationId changes at runtime - Update SkiaSharp to 3.119.4 - Implement TextRunCache for performance improvement - Improve type caching in the XAML compiler ### Fixed #### 12.1.2 (2026-09-02) - Fix GeometryBuilder.DrawRoundedCornersRectangle for Rect - Fix Vulkan image layout in GPU interop - Fix ServerCompositionDrawingSurface orphaning GPU snapshots when an update is processed after Dispose - Fix Loaded event processing after a handler throws - Keep transform playback in sync when hidden - Fix vector geometry anti-aliasing regression by making stencil buffers opt-in - Fix AccessKeyHandler when no descendant control has focus - Ensure that ActualThemeVariant always has a proper value - Fix init order of SetupWithClassicDesktopLifetime #### 12.1.1 (2026-07-29) - Fix Dispatcher.ReplaceImplementation - Reapply cached binding source values during UpdateTarget - Fix custom-hit-test optimization - Detach platform input when presentation source closes - Fix line break enumerator infinite loop - Fix EGL surface recreation after native handle changes - Fix stale _usedCache value that wasn't reset properly in compositor - Properly wire CompositionInterop.IsLost - Preserve lines at rounded fractional heights - Correct nested TreeViewItem selection behaviour on pointer release - Fix issues on SelectingItemsControls when items or control changes visibility - Stop HotKeyManager from triggering on hidden controls - Fix SplitView stealing BackRequested when its pane is closed - Fix CommandBar secondary visibility during overflow open - Fix AutoCompleteBox popup not closing on focus lost - Position popup using the screen containing the anchor point #### 12.1.0 (2026-07-09) - Improve composition hit testing performance with per-visual AABBs #### 12.0.5 (2026-06-23) - Fix culture aware font matching - Fix TextCollapsingProperties bidirectional-text (BiDi) correctness - Fix NotificationCard pseudo class state when NotificationType changes - Apply placeholder opacity to combobox placeholder textblock - Fix radio button disabled fill and stroke brushes #### 12.0.4 (2026-05-28) - Fix CommandBar overflow labels when label position is collapsed - Fix RenderTargetBitmap losing effects - Fix SelectionChanged not raised on collection reset - Ensure system back event is passed to child page once - Make sure TryGetGlyphTypeface does not fail for concurrent access - Avoid exceptions when getting a position from a PointerEventArgs - Make text in NumericUpDown update immediately when changing the TextConverter - Fix double reorder of cached bidi runs - Set WindowDrawnDecorations background to transparent - Fix radio MenuItem grouping in MenuFlyout - Fix popup positioning anchor rect bug with drawn window decorations ### Security #### 12.0.3 (2026-05-11) - Bump SharpCompress from 0.41.0 to 0.48.0 in VNC ## Release notes ### 12.1.2 - Date: 2026-09-02 - Version: 12.1.2 - Original notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.1.2 - Permalink: https://whatsnew.fyi/product/avalonia/releases/12.1.2 - **changed** — Preserve current Animation progress if SpeedRatio or PlaybackDirection changes - **added** — Add TextInputOptions.HintLocales - **added** — Implement VerticalContentAlignment for DatePicker and TimePicker - **added** — Add :empty pseudoclass for ContentControl - **changed** — Propagate Popup.IsHitTestVisible to IPopupImpl to skip hit-testing popups on the OS level if available - **added** — Add Content attribute to ContentPresenter - **changed** — Don't build the selected text just to check whether a selection exists - **changed** — Enable picking .app-packages as a folder on macOS - **changed** — Select a KMS-capable DRM card automatically on Linux - **added** — Support TextInputOptions.IsSensitive and ContentType Pin on Android - **added** — Implement VoiceOver support on iOS - **fixed** — Fix GeometryBuilder.DrawRoundedCornersRectangle for Rect - **fixed** — Fix Vulkan image layout in GPU interop - **fixed** — Fix ServerCompositionDrawingSurface orphaning GPU snapshots when an update is processed after Dispose - **fixed** — Fix Loaded event processing after a handler throws - **fixed** — Keep transform playback in sync when hidden - **fixed** — Fix vector geometry anti-aliasing regression by making stencil buffers opt-in - **fixed** — Fix AccessKeyHandler when no descendant control has focus - **fixed** — Ensure that ActualThemeVariant always has a proper value - **fixed** — Fix init order of SetupWithClassicDesktopLifetime ##### What's Changed ###### Enhancements - Core – Preserve current `Animation` progress if `SpeedRatio` or `PlaybackDirection` changes by @timiimit-tam in https://github.com/AvaloniaUI/Avalonia/pull/19830 - Core – Add `TextInputOptions.HintLocales` by @kerams in https://github.com/AvaloniaUI/Avalonia/pull/21528 - Controls – Implement `VerticalContentAlignment` for `DatePicker` and `TimePicker` by @JoaoMSSCruz in https://github.com/AvaloniaUI/Avalonia/pull/21464 - Controls – Add `:empty` pseudoclass for `ContentControl` by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21829 - Controls – Propagate `Popup.IsHitTestVisible` to `IPopupImpl` to skip hit-testing popups on the OS level if available by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21916 - Controls – Add `Content` attribute to `ContentPresenter` by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21997 - Controls – Don't build the selected text just to check whether a selection exists by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/22100 - macOS – Enable picking `.app`-packages as a folder by @jakobhellermann in https://github.com/AvaloniaUI/Avalonia/pull/21925 - Linux – Select a KMS-capable DRM card automatically by @Illustar0 in https://github.com/AvaloniaUI/Avalonia/pull/21923 - Android – Support `TextInputOptions.IsSensitive` and `ContentType` Pin by @dariostrm in https://github.com/AvaloniaUI/Avalonia/pull/22110 - iOS – Implement VoiceOver support by @IsaMorphic in https://github.com/AvaloniaUI/Avalonia/pull/18016 ###### Fixes - Core – Fix `GeometryBuilder.DrawRoundedCornersRectangle` for `Rect` by @robloo in https://github.com/AvaloniaUI/Avalonia/pull/21482 - Core – Fix Vulkan image layout in GPU interop by @nateglasser in https://github.com/AvaloniaUI/Avalonia/pull/21787 - Core – Fix `ServerCompositionDrawingSurface` orphaning GPU snapshots when an update is processed after `Dispose` by @ddunham121 in https://github.com/AvaloniaUI/Avalonia/pull/21876 - Core – Fix `Loaded` event processing after a handler throws by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21877 - Core – Keep transform playback in sync when hidden by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21896 - Core – Fix vector geometry anti-aliasing regression by making stencil buffers opt-in by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21899 - Core – Fix `AccessKeyHandler` when no descendant control has focus by @AutumnYuanc in https://github.com/AvaloniaUI/Avalonia/pull/21920 - Core – Ensure that `ActualThemeVariant` always has a proper value by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21930 - Core – Fix init order of `SetupWithClassicDesktopLifetime` by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21954 - Core – Raise `TopLevel.Closed` from managed `Dispose` paths by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/22045 - Core – Ignore default ignorable codepoints in font fallback by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/22059 - Core – Justify word gaps that fall on a run boundary by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/22065 - Core – Snap a right-to-left buffer split to the cluster boundary by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/22066 - Core – Do not shape the space after fallback text with the fallback font by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/22067 - Core – Use effective capturer (which can be recognizer) for `PlatformCapture` by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/22076 - Core – Short-circuit the binding chain on a null-conditional operator by @grokys in https://github.com/AvaloniaUI/Avalonia/pull/22082 - Core – Fix dispatcher frame capturing wrong dispatcher by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/22086 - Core – Fix memory leak when binding to observables by @grokys in https://github.com/Avalon _[Truncated at 4000 characters — full notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.1.2]_ ### 12.1.1 - Date: 2026-07-29 - Version: 12.1.1 - Original notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.1.1 - Permalink: https://whatsnew.fyi/product/avalonia/releases/12.1.1 - **added** — Add ToolTip.ShouldUseOverlayLayer attached property - **added** — Allow single parameter with any type when binding to a method - **added** — Add UseWaylandWithFallback option - **added** — Expose AutomationId as resource-id for Android automation - **fixed** — Fix Dispatcher.ReplaceImplementation - **fixed** — Reapply cached binding source values during UpdateTarget - **fixed** — Fix custom-hit-test optimization - **fixed** — Detach platform input when presentation source closes - **fixed** — Fix line break enumerator infinite loop - **fixed** — Fix EGL surface recreation after native handle changes - **fixed** — Fix stale _usedCache value that wasn't reset properly in compositor - **fixed** — Properly wire CompositionInterop.IsLost - **fixed** — Preserve lines at rounded fractional heights - **fixed** — Correct nested TreeViewItem selection behaviour on pointer release - **fixed** — Fix issues on SelectingItemsControls when items or control changes visibility - **fixed** — Stop HotKeyManager from triggering on hidden controls - **fixed** — Fix SplitView stealing BackRequested when its pane is closed - **fixed** — Fix CommandBar secondary visibility during overflow open - **fixed** — Fix AutoCompleteBox popup not closing on focus lost - **fixed** — Position popup using the screen containing the anchor point ##### What's Changed ###### Enhancements * Controls – Add `ToolTip.ShouldUseOverlayLayer` attached property by @rabbitism in https://github.com/AvaloniaUI/Avalonia/pull/21830 * XAML – Allow single parameter with any type when binding to a method by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21867 * Wayland – Add `UseWaylandWithFallback` by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21734 * Android – Expose `AutomationId` as resource-id for Android automation by @stevemonaco in https://github.com/AvaloniaUI/Avalonia/pull/21780 ###### Fixes * Core – Fix `Dispatcher.ReplaceImplementation` by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21735 * Core – Reapply cached binding source values during `UpdateTarget` by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21756 * Core – Fix custom-hit-test optimization by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21769 * Core – Detach platform input when presentation source closes by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21782 * Core – Fix line break enumerator infinite loop by @rabbitism in https://github.com/AvaloniaUI/Avalonia/pull/21808 * Core – Fix EGL surface recreation after native handle changes by @AB901 in https://github.com/AvaloniaUI/Avalonia/pull/21816 * Core – Fix stale `_usedCache` value that wasn't reset properly in compositor by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21823 * Core – Properly wire `CompositionInterop.IsLost` by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21824 * Core – Preserve lines at rounded fractional heights by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21834 * Controls – Correct nested `TreeViewItem` selection behaviour on pointer release by @TomEdwardsEnscape in https://github.com/AvaloniaUI/Avalonia/pull/21705 * Controls – Fix some issues on `SelectingItemsControls` when items or control changes visibility by @timunie in https://github.com/AvaloniaUI/Avalonia/pull/20798 * Controls – Stop `HotKeyManager` from triggering on hidden controls (#21708) by @1419323749 in https://github.com/AvaloniaUI/Avalonia/pull/21714 * Controls – Fix `SplitView` stealing BackRequested when its pane is closed (#21740) by @gentledepp in https://github.com/AvaloniaUI/Avalonia/pull/21741 * Controls – Fix `CommandBar` secondary visibility during overflow open by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21742 * Controls – Fix `AutoCompleteBox` popup not closing on focus lost by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21749 * Controls – Position popup using the screen containing the anchor point by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21750 * Controls – Keep page in `NavigationPage`'s logical tree until animation is complete by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21751 * Controls – Fix `SimpleTheme` focus adorner contrast in dark mode by @iamvalenciia in https://github.com/AvaloniaUI/Avalonia/pull/21753 * Controls – Fix `ComboBox` dropdown not scrolling to selected item when opened by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21764 * Controls – Allow `Grid` shared size groups to shrink by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21837 * Controls – Fix `ListBox` crash when scrolling after item removal by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21838 * Controls – Clear `TextBox` undo history on external text updates by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21839 * Controls – Register `Grid` assigned definition collections with their shared size group by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21848 * Controls – Initialize `TextBox` command states in constructor by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21859 * Controls – Fix infinite loop in tab stop search with `TabNavigation=Once` by @maggch97 in https://git _[Truncated at 4000 characters — full notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.1.1]_ ### 12.1.0 - Date: 2026-07-09 - Version: 12.1.0 - Original notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.1.0 - Permalink: https://whatsnew.fyi/product/avalonia/releases/12.1.0 - **added** — Allow setting ThemeVariant to Default to reset theme to system on Android - **added** — Allow Dispatcher to be converted to a TaskScheduler - **added** — Add Scrollbar context menu - **added** — Add custom CalendarDatePicker date parsing to allow for multiple user input formats - **added** — Implement TableView control - **added** — Implement IStorageProvider.OpenFileWithResultAsync - **added** — Implement Bitmap.Save with a format - **added** — Implement Win32Properties.WindowCornerPreference - **added** — Implement automatic fps detection on X11 - **added** — Implement XDND drag-and-drop support for Linux - **added** — Implement Wayland protocol support - **added** — Add platform feedback API for sound and haptic feedback on Android and iOS - **added** — Create Avalonia.WinUI for initial WinUI embed support - **changed** — Remove obsolete int32 limit on DispatcherTimer.Interval - **changed** — Bump MicroCOM and use source generators - **changed** — Allow attaching a platform-specific event cookie to platform events - **changed** — Align Touch and Pen capture semantics with Mouse - **changed** — Disable region dirty rect clipping by default - **changed** — Enable stencil buffers by default with configurable option - **changed** — Support rendering at max refresh rate of current displays on Windows - **fixed** — Improve composition hit testing performance with per-visual AABBs #### General Read our [release blog post](https://avaloniaui.net/blog/release-12-1) for more information about new features in Avalonia 12.1.0! #### What's Changed ##### Enhancements - Core – Allow setting `ThemeVariant` to `Default` to reset theme to system on android by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/16340 - Core – Allow `Dispatcher` to be converted to a `TaskScheduler` by @TomEdwardsEnscape in https://github.com/AvaloniaUI/Avalonia/pull/21032 - Core – Remove obsolete int32 limit on `DispatcherTimer.Interval` by @TomEdwardsEnscape in https://github.com/AvaloniaUI/Avalonia/pull/21113 - Core – Bump MicroCOM and use source generators by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21218 - Core – Improve composition hit testing performance with per-visual AABBs by @hez2010 in https://github.com/AvaloniaUI/Avalonia/pull/21310 - Core – Tests/render data drawing context coverage by @ZehMatt in https://github.com/AvaloniaUI/Avalonia/pull/21341 - Core – Align Touch/Pen capture semantics with Mouse (#21325) by @miloush in https://github.com/AvaloniaUI/Avalonia/pull/21363 - Core – Refactor per-draw render data allocations with a binary opcode stream by @ZehMatt in https://github.com/AvaloniaUI/Avalonia/pull/21366 - Core – Allow attaching a platform-specific event cookie to platform events by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21378 - Core – Pass original logical size to render targets by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21380 - Core – Pass shadow extents to the platform by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21385 - Core – A bit better handling of gpu context loss by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21387 - Core – Platform event to toggle drawn decorations state by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21388 - Core – Use `eglGetProcAddress` instead of `NativeLibrary.TryGetExport` by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21392 - Core – Support desktop OpenGL profiles via EGL by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21393 - Core – Implement `IStorageProvider.OpenFileWithResultAsync` by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21418 - Core – Implement `Bitmap.Save` with a format by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21455 - Core – Disable region dirty rect clipping by default by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21553 - Core – Enable stencil buffers by default + add configurable option by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21586 - Core – avoid `SKBitmap.Copy` when creating `ImmutableBitmap` from pixels by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21675 - Core – Generate a CycloneDX SBOM per published NuGet package by @grokys in https://github.com/AvaloniaUI/Avalonia/pull/21681 - Core – Composition-aware geometries and drawing change detection by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21682 - Controls – Improve pull-to-refresh usability in `RefreshContainer` by @gentledepp in https://github.com/AvaloniaUI/Avalonia/pull/18617 - Controls – Add `Scrollbar` Context Menu by @drasticactions in https://github.com/AvaloniaUI/Avalonia/pull/19413 - Controls – Add custom `CalendarDatePicker` date parsing to allow for multiple user input formats by @Deadpikle in https://github.com/AvaloniaUI/Avalonia/pull/21193 - Controls – Implement `TableView` by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21511 - Controls – Show checkerboard background for transparent ColorView palette items by @Jaex in https://github.com/AvaloniaUI/Avalonia/pull/21613 - Controls – Allow copying and cutting revealed TextBox passwords by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21710 - Windows – Optimize rendering performance by reducing premultiplied AlphaMode by @lindexi in https://github.com/AvaloniaUI/Avalonia/pull/20757 - Windows – _[Truncated at 4000 characters — full notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.1.0]_ ### 12.0.5 - Date: 2026-06-23 - Version: 12.0.5 - Original notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.0.5 - Permalink: https://whatsnew.fyi/product/avalonia/releases/12.0.5 - **added** — Implement Unicode word segmentation and update to Unicode v17 - **changed** — Unicode and text layout optimizations - **added** — Expose Calendar day button selection state to automation - **added** — Expose menu item toggle state to automation - **added** — Support Value pattern on editable ComboBox automation peer - **changed** — Enhance Roslyn-compiler visible metadata - **changed** — Fall back to pixel location when GetPointerDeviceRects is unavailable - **added** — Add AX BringIntoView/AXScrollArea role on macOS - **changed** — Synchronize Metal drawable presentation on macOS - **added** — Expose ScrollViewer scroll bars to accessibility on macOS - **added** — Report read-only value state to accessibility on macOS - **added** — Expose tree item selection to accessibility on macOS - **added** — Expose placeholder text as the AT-SPI placeholder-text attribute on X11 - **added** — Add support for hover events on Android - **added** — Add sleep timer option to Headless - **fixed** — Fix culture aware font matching - **fixed** — Fix TextCollapsingProperties bidirectional-text (BiDi) correctness - **fixed** — Fix NotificationCard pseudo class state when NotificationType changes - **fixed** — Apply placeholder opacity to combobox placeholder textblock - **fixed** — Fix radio button disabled fill and stroke brushes ##### What's Changed ###### Enhancements * Core – Implement Unicode word segmentation and update to Unicode v17 by @JimBobSquarePants in https://github.com/AvaloniaUI/Avalonia/pull/21361 * Core – Unicode and text layout optimizations by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21400 * Core – Expose `Calendar` day button selection state to automation by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21540 * Core – Expose menu item toggle state to automation by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21541 * Core – Support Value pattern on editable `ComboBox` automation peer by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21545 * XAML – Enhance Roslyn-compiler visible metadata by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21546 * Windows – Fall back to pixel location when `GetPointerDeviceRects` is unavailable by @Symbai in https://github.com/AvaloniaUI/Avalonia/pull/21337 * macOS – Add AX `BringIntoView`/`AXScrollArea` role by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21457 * macOS – Synchronize Metal drawable presentation by @drasticactions in https://github.com/AvaloniaUI/Avalonia/pull/21588 * macOS – Expose `ScrollViewer` scroll bars to accessibility by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21596 * macOS – Report read-only value state to accessibility by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21597 * macOS – Expose tree item selection to accessibility by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21598 * X11 – Expose placeholder text as the AT-SPI placeholder-text attribute by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21554 * Android – Add support for hover events on android by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21551 * Headless – Add sleep timer option by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21423 ###### Fixes * Core – Fix culture aware font matching by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21435 * Core – Fix `TextCollapsingProperties` bidirectional-text (BiDi) correctness by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21446 * Core – Fix `NotificationCard` pseudo class state when `NotificationType` changes by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21490 * Core – Apply placeholder opacity to combobox placeholder textblock by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21493 * Core – Fix radio button disabled fill and stroke brushes by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21495 * Core – Listen to layout changes for ancestor visuals in text selection canvas by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21536 * Core – Fix caption button background in dark mode by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21555 * Core – Fix system font caching when retrieved with a different name by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21557 * Core – Fix `StackOverflow` when a `NaN` offset is set on `ScrollViewer` by @NicholasLachapelle in https://github.com/AvaloniaUI/Avalonia/pull/21558 * Core – Avoid read-only editing side effects in `TextBox` keyboard handlers by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21587 * Core – Fix `TimePicker` selection style by @shine1258 in https://github.com/AvaloniaUI/Avalonia/pull/21626 * Core – Suppress culture flowing with `ExecutionContext` captured by `DispatcherOperation` by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21627 * XAML – Fix some AOT warnings by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21616 * XAML – Fix typo in key assignment for reference assembly by @collindang88 in https://github.com/AvaloniaUI/Avalonia/pull/21474 * Windows – Fix window animations in extended mode by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21498 * Windows – Fix `WinUiCompositorConnection` deadlock by @MrJul in https://github.com/ _[Truncated at 4000 characters — full notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.0.5]_ ### 12.0.4 - Date: 2026-05-28 - Version: 12.0.4 - Original notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.0.4 - Permalink: https://whatsnew.fyi/product/avalonia/releases/12.0.4 - **changed** — Bump ANGLE version and sign native binaries - **changed** — Update XML documentation to reflect correct type references in Avalonia.Controls project - **added** — Add missing AutomationPeers from built-in Controls - **changed** — Align Touch/Pen capture semantics with Mouse - **changed** — Fire property-changed events when AutomationId changes at runtime - **changed** — Update SkiaSharp to 3.119.4 - **added** — Add accessibility events for expand and collapse events on macOS - **changed** — Implement TextRunCache for performance improvement - **changed** — Improve type caching in the XAML compiler - **fixed** — Fix CommandBar overflow labels when label position is collapsed - **fixed** — Fix RenderTargetBitmap losing effects - **fixed** — Fix SelectionChanged not raised on collection reset - **fixed** — Ensure system back event is passed to child page once - **fixed** — Make sure TryGetGlyphTypeface does not fail for concurrent access - **fixed** — Avoid exceptions when getting a position from a PointerEventArgs - **fixed** — Make text in NumericUpDown update immediately when changing the TextConverter - **fixed** — Fix double reorder of cached bidi runs - **fixed** — Set WindowDrawnDecorations background to transparent - **fixed** — Fix radio MenuItem grouping in MenuFlyout - **fixed** — Fix popup positioning anchor rect bug with drawn window decorations ##### What's Changed ##### Enhancements * Core – Bump ANGLE version + sign native binaries by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21219 * Core – Update XML documentation to reflect correct type references in `Avalonia.Controls` project by @rabbitism in https://github.com/AvaloniaUI/Avalonia/pull/21283 * Core – Add missing AutomationPeers from built-in Controls by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21322 * Core – Align Touch/Pen capture semantics with Mouse by @miloush in https://github.com/AvaloniaUI/Avalonia/pull/21325 * Core – Fire property-changed events when AutomationId changes at runtime by @dimension-zero in https://github.com/AvaloniaUI/Avalonia/pull/21374 * Core – Update SkiaSharp to 3.119.4 by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21434 * macOS – Add accessibility events for expand & collapse events by @codecat in https://github.com/AvaloniaUI/Avalonia/pull/21043 ###### Performance * Core – Implement `TextRunCache` by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21030 * XAML – Improve type caching in the XAML compiler by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21408 ###### Fixes * Core – Fix `CommandBar` overflow labels when label position is collapsed by @jsuarezruiz in https://github.com/AvaloniaUI/Avalonia/pull/21226 * Core – Fix `RenderTargetBitmap` losing effects by @timunie in https://github.com/AvaloniaUI/Avalonia/pull/20790 * Core – Fix `SelectionChanged` not raised on collection reset by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/20942 * Core – Ensure system back event is passed to child page once by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21246 * Core – Make sure TryGetGlyphTypeface does not fail for concurrent access by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21269 * Core – Avoid exceptions when getting a position from a `PointerEventArgs` by @TomEdwardsEnscape in https://github.com/AvaloniaUI/Avalonia/pull/21301 * Core – Make text in `NumericUpDown` update immediately when changing the `TextConverter` by @cdytoby in https://github.com/AvaloniaUI/Avalonia/pull/21320 * Core – Fixes double reorder of cached bidi runs by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21351 * Core – Set `WindowDrawnDecorations` background to transparent by @ent3m in https://github.com/AvaloniaUI/Avalonia/pull/21354 * Core – Fix radio `MenuItem` grouping in `MenuFlyout` by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21356 * Core – Fix popup positioning anchor rect bug with drawn window decorations by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21383 * Core – Make cursor respect the captured element by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21421 * Core — Add a resource for title bar background by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21440 * XAML – Fix compiled binding DataContext inference in ItemTemplate by @JoaoMSSCruz in https://github.com/AvaloniaUI/Avalonia/pull/21248 * Windows – Run file picker on dedicated STA thread to avoid MTA deadlock by @ZehMatt in https://github.com/AvaloniaUI/Avalonia/pull/21266 * Windows – Fix borders and shadows on Windows 10 in extended mode by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21412 * Windows – Include border size in `GetMinMax` request by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21420 * Windows – Fix UIA tree not visible for Avalonia content embedded via `WinFormsAvaloniaControlHost` by @AndreyPolovodov in https://github.com/AvaloniaUI/Avalonia/pull/21422 * macOS – Fix `DeviceLuid` byte ordering on GPU interop by @dirivero in https://github.com/AvaloniaUI/Avalonia/pull/21293 * X11 – Observe potential DBus exception in `UnregisterWindowAsync` by @holdxen in https://github.com/AvaloniaUI/Avalonia/pull/21344 * X11 – Update Avalonia.DBus submodule by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21419 * Andro _[Truncated at 4000 characters — full notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.0.4]_ ### 12.0.3 - Date: 2026-05-11 - Version: 12.0.3 - Original notes: https://github.com/AvaloniaUI/Avalonia/releases/tag/12.0.3 - Permalink: https://whatsnew.fyi/product/avalonia/releases/12.0.3 - **security** — Bump SharpCompress from 0.41.0 to 0.48.0 in VNC ##### What's Changed ###### Security * VNC – Bump SharpCompress from 0.41.0 to 0.48.0 by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21339 **Full Changelog**: https://github.com/AvaloniaUI/Avalonia/compare/12.0.2...12.0.3