.NET MAUI 10.0.120 Release Notes
Release source: 6aca5366139ed0e1cd05cca3e32b6a887d5a8dd0
.NET MAUI 10.0.120 introduces significant improvements across all platforms with focus on quality, performance, and developer experience. This release includes 213 commits with various improvements, bug fixes, and enhancements.
Ai Agents
-
Remove only legacy /review rerun queue and scanner by @kubaflo in #39029
-
Preserve packed-ref access in isolated Vally workspace by @PureWeen in #39025
-
Add /review performance GitHub Agentic Workflow for PR benchmarks by @morning4coffe-dev in #38324
-
Add maintainer-triggered issue regression tracing by @kubaflo in #38710
-
Issue regression tracing: Bound evidence and preflight version gaps by @kubaflo in #39121
-
Add /issue triage agentic workflow for manual issue labels by @kubaflo in #39065
-
Keep /issue triage reports artifact-only while applying real labels by @kubaflo in #39201
-
Expose citation-safe prose to /issue triage by @kubaflo in #39276
-
Add /review gate without replacing full review by @kubaflo in #39189
-
Fix unattended CI-fixer evidence retrieval by @PureWeen in #39237
Animation
-
Fix AnimationManager.Dispose β retained ticker keeps disposed manager and callbacks alive by @HarishwaranVijayakumar in #37639
Blazor
-
Fix BlazorWebView root component subscriptions on disconnect by @sheiksyedm in #39247
-
[Windows] Enable external file drops in BlazorWebView by @danroth27 in #37904
-
[BlazorWebView] Fix dispatcher exception propagation by @jfversluis in #37974
-
[Android] Configure image drag support for BlazorWebView by @danroth27 in #37975
-
Fix problem with null VirtualView in BlazorWebViewHandler on iOS by @JimmyPun610 in #38141
π§ Fixes
-
Fix for handler leaks by traversing non-IView Shell nodes in DisconnectHandlers() by @BagavathiPerumal in #38022
-
[Android]Fix for Android BlazorWebView crash when opening image links in a new window by @BagavathiPerumal in #38195
BlazorWebView
-
Revert "Fix BlazorWebView root component subscriptions on disconnect" by @kubaflo in #39251
-
Fix inflight/current BlazorWebView and UI-test build failures by @kubaflo in #38574
CollectionView
-
[main] [iOS/MacCatalyst] Fix Editor and CarouselView remaining non-interactive after IsEnabled toggle by @github-actions[bot] in #38487
-
[main] [Android] Fix ArgumentOutOfRangeException when removing items from grouped CollectionView by @github-actions[bot] in #38486
-
Fix UI test compilation after CollectionView sharding by @kubaflo in #38491
-
Use CollectionView2 for test GroupedCollectionViewRemovalsUseCurrentAdapterPositions by @Vignesh-SF3580 in #38598
-
Revert "[Mac] Fix VoiceOver announcement for actionable CollectionView items" by @kubaflo in #39010
-
Stabilize CollectionView header and Shell flyout UI tests by @kubaflo in #39056
-
[Windows] CarouselView: Fix mouse-wheel snapping by @jfversluis in #37387
-
Fix grouped CollectionView EmptyView on iOS by @jfversluis in #37959
-
[Android] CollectionView: Fix grouped EmptyView updates by @jfversluis in #37954
-
[iOS] Horizontal CollectionView jumps to beginning by @SubhikshaSf4851 in #37307
-
[iOS] CollectionView2: Fix layout for dynamically rebuilt item content by @jfversluis in #37437
-
[iOS] Fix CollectionView Label Truncation with MeasureFirstItem by @devanathan-vaithiyanathan in #38338
-
[Android] Prevent CollectionView EmptyView crash after handler disconnect by @Shalini-Ashokan in #38653
-
[Inflight/Candidate] [iOS] Fix for CollectionView layout issue after iOS device rotation by @kubaflo in #38815
-
[inflight/candidate] [iOS] Fix CarouselView template selector crash during cell reconfiguration by @kubaflo in #39254
-
[inflight/candidate] [iOS] Fix CollectionView items disappearing after orientation change by @kubaflo in #39322
-
[inflight/candidate] [Android] Backport grid spacing regression fix for #38925 by @kubaflo in #39335
-
[inflight/candidate] Fix iOS CollectionView selection during Shell navigation by @github-actions[bot] in #39327
-
[inflight/candidate] Fix Windows CollectionView selection crash by @github-actions[bot] in #39329
-
[Inflight/Candidate] Stabilize Looped CarouselView Collection Override Device Test by @HarishwaranVijayakumar in #39217
-
[inflight/candidate] [Mac] Fix blank content in RefreshView with CollectionView during scrolling by @kubaflo in #39357
-
[inflight/candidate] [Android] Fix CollectionView selection with pointer gestures (#37952) by @kubaflo in #39387
-
[Inflight/Candidate][iOS] Fix for unnecessary arrange passes in CollectionView2 by @BagavathiPerumal in #39396
Core Lifecycle
-
[Windows] Mark MauiWinUIApplication properties obsolete by @jfversluis in #37957
-
[inflight/candidate] Revert deferred Android Loaded event (#38769) by @kubaflo in #38784
DateTimePicker
-
[iOS] Fix TimePicker forcing en-US culture on iOS instead of device culture by @SyedAbdulAzeemSF4852 in #37797
Drawing
-
[Windows] Fix GraphicsView crash during repeated drawing by @jfversluis in #37419
-
[Windows] Fix Border clipping for transformed content by @jfversluis in #37424
-
Use SkiaSharp arc drawing API by @jfversluis in #37955
Editor
-
UI tests: Wait for Options before checking Editor vertical alignment by @kubaflo in #39128
-
[Windows] TextBox: Cache template ScrollViewer by @jfversluis in #38027
-
[Android] Fix Material 3 Editor expanding to MaximumHeightRequest by @Shalini-Ashokan in #38587
-
[inflight/candidate] [iOS] Editor can't be scrolled after rotating simulator. by @github-actions[bot] in #39318
Entry
-
[main] [Android] Fix Keyboard="Numeric" Entry no longer accepts OS-locale decimal separator by @github-actions[bot] in #38485
-
[Windows] ScrollView: Prevent automatic Entry focus by @jfversluis in #37428
-
[Testing] Refactoring Feature Matrix UITest Cases for Entry Control by @LogishaSelvarajSF4525 in #37111
Essentials
-
[Android] Use typed API 33 Parcelable overload by @jfversluis in #37956
-
[Android] Geolocation: Select providers explicitly on API 34 by @jfversluis in #37976
-
[Android] MediaPicker: Stop overwriting picked source files by @mattleibow in #38029
-
[iOS] Migrate deprecated Browser, FilePicker, and font APIs by @jfversluis in #38025
-
[Android] Validate physical paths returned by pickers by @mattleibow in #38127
General
-
[Mac] Fix VoiceOver announcement for actionable CollectionView items by @Dhivya-SF4094 in #37674
-
Fix GradientBrush memory leak with shared GradientStops by @SyedAbdulAzeemSF4852 in #37893
Gestures
-
[Controls] Remove unused DropResult property by @jfversluis in #37401
-
[Windows] InputTransparent: Respect wrapper view hit testing by @jfversluis in #37392
π§ Fixes
-
[iOS/MacCatalyst] Fix for TapGestureRecognizer.NumberOfTapsRequired is not reactive at runtime by @SuthiYuvaraj in #38551
Image
-
[iOS/Mac] Fix Image not enlarging to explicit HeightRequest/WidthRequest by @SyedAbdulAzeemSF4852 in #37267
-
Fix app crash when loading large URI images by @jonathanpeppers in #38204
-
[Android] Fix blurry Material 3 images when scaled by @SubhikshaSf4851 in #38362
Label
-
[Android/iOS] Fix Label background not clearing when set to null by @Shalini-Ashokan in #37182
-
Fix SetDynamicResource does not update the Background property of the Label by @KarthikRajaKalaimani in #38063
Layout
-
[iOS] ScrollView: Keep the content offset when the scroll view is resized by its parent layout by @albyrock87 in #38599
-
Fix effective visibility propagation by @jfversluis in #37546
-
Fix irregular placement of views with margins by @SyedAbdulAzeemSF4852 in #37080
π§ Fixes
-
[inflight/candidate] [iOS 27] Fix TitleView sizing before navigation bar layout (#39285) by @kubaflo in #39389
Localization
Map
-
[iOS/MacCatalyst] Map bicycling navigation to cycling directions by @jfversluis in #37942
Mediapicker
-
[main] [iOS] Fix MediaPicker throwing UIKitThreadAccessException when picking 2+ items by @github-actions[bot] in #38488
-
[Windows] MediaPicker: Apply EXIF orientation only once by @jfversluis in #38591
Navigation
-
[iOS] Fix NavigationPage and Shell: Respect back-button handling for interactive pop gestures by @Dhivya-SF4094 in #38071
-
[Android] Fix SafeArea navigation insets and keyboard test polling by @kubaflo in #38665
Navigationpage
-
[iOS] Read NavPage once in SetStatusBarStyle so the null guard is effective by @tomcurran in #38154
Packaging
-
Revert #38318 runtime/library package versions; keep SDK and Arcade fixes by @kubaflo in #38732
-
[inflight/current] Fix workload packaging targeting-pack restore by @kubaflo in #38594
Performance
-
Restore expandable /review performance comments by @kubaflo in #39037
-
Fix memory leak in VisualDiagnostics.VisualTreeChanged by backing the static event with WeakEventManager by @Shalini-Ashokan in #37382
-
Fix memory leak when removing VisualState state triggers by @Shalini-Ashokan in #38444
-
[inflight/candidate] Fix Resizetizer System.Memory compatibility for SVG filters and text by @kubaflo in #39388
-
Fix leak-fixer evidence filtering before bot trust evaluation by @kubaflo in #39457
Picker
-
Fix Picker memory leak caused by ItemsSource collection subscription by @devanathan-vaithiyanathan in #37813
ProgressBar
RefreshView
Resizetizer
- [Resizetizer] Reenable integration tests by @jfversluis in #37973
SafeArea
-
[iOS] Fix for ScrollView SafeAreaEdges="Container" Double Safe-Area Reservation Causing Phantom Scroll Range by @BagavathiPerumal in #37765
-
[Android] Fix incorrect top padding when translating views offscreen by @devanathan-vaithiyanathan in #37772
-
[Android] Route Issue36543 to SafeAreaEdges UI tests by @jfversluis in #38097
-
[Android] Fix for safe area flicker during keyboard dismissal by @BagavathiPerumal in #37935
-
[inflight/candidate] Backport Android safe-area resize fix (#36474) by @kubaflo in #39336
ScrollView
-
[Testing] Fix for ScrollViewInitialOffsetInGridRow UITests failure by @HarishKumarSF4517 in #38621
-
[iOS] ScrollView: Complete every superseded or dropped scroll request's task by @albyrock87 in #37666
-
[Android] Prevent vertical scroll in horizontal ScrollView by @Shalini-Ashokan in #37880
-
[Testing] SafeArea Feature Matrix Test Cases for ScrollView by @TamilarasanSF4853 in #38299
-
[iOS] Fix Infinite Measure Looping on iOS by @HarishwaranVijayakumar in #38197
-
[Inflight/Candidate] [Windows] Fix ScrollView handler leak in device test by @Vignesh-SF3580 in #39060
-
[inflight/candidate] Fix iOS PageSheet ScrollView flicker by @github-actions[bot] in #39330
-
[inflight/candidate] Fix Android WebView blocking parent scrolling by @github-actions[bot] in #39326
-
[inflight/candidate][iOS] Fix ScrollView PageSheet detection without reverting the flicker fix by @kubaflo in #39472
Searchbar
- [Testing] Refactoring Feature Matrix UITest Cases for SearchBar Control by @NafeelaNazhir in #38191
Shapes
-
Fix test-failure review baseline, discovery, and reporting by @kubaflo in #38689
-
CI-fix automation: Fix startup deadlines and producer helper guidance by @PureWeen in #39188
-
CI: Match Known Build Error message arrays on ordered lines by @PureWeen in #39231
-
Minimize Azure Pipelines command and success comments by @kubaflo in #39404
-
Fix Gate discovery for screenshot baselines and HostApp-only changes by @kubaflo in #39408
Shell
-
Shell UI tests: Keep flyout height reference visible by @kubaflo in #39129
-
[leak-scan] Fix: ShellContent.Content shared Page.PropertyChanged retains prior ShellContent instances by @SubhikshaSf4851 in #37390
-
[Android] Add native element registrations for DevFlow by @morning4coffe-dev in #36835
-
Fix BackButtonBehavior.Command CanExecuteChanged memory leak by @devanathan-vaithiyanathan in #37771
-
[Android]Fix Navigation stops working when changing Window[0].Page from Shell by @devanathan-vaithiyanathan in #38159
-
[leak-scan] Routing.s_implicitPageRoutes β cancelled Shell push retains the page by @SubhikshaSf4851 in #38404
-
[iOS] Fix modal page content not shown on subsequent navigation for singleton lifetime pages by @HarishwaranVijayakumar in #38402
-
[Android] Restore native theme colors instead of hardcoded defaults for Shell/TabbedPage appearance under Material 3 by @SuthiYuvaraj in #37147
-
[Windows]Fix TabBar transition animation not completing by @SubhikshaSf4851 in #38637
π§ Fixes
-
[iOS] Center FontImageSource glyphs on iOS 26 without changing font metrics by @kubaflo in #39230
-
[inflight/candidate] Backport iOS Shell More re-evaluation fix (#39264) by @kubaflo in #39320
-
[inflight/candidate] Fix Shell flyout VisualState hang by @github-actions[bot] in #39331
-
Shard Shell UI tests into two CI lanes on all platforms by @Ahamed-Ali in #39359
SwipeView
-
Fix SwipeView memory leak when Content is shared across instances by @SyedAbdulAzeemSF4852 in #38101
TabbedPage
-
Fix Windows TabbedPage back-nav crash when tabs are shared (fixes #26214) by @jshield in #38280
π§ Fixes
-
Fix default styles for derived NavigationPage and TabbedPage by @SubhikshaSf4851 in #38593
Templates
-
[Mac] Fix VoiceOver does not announce initial ComboBox state in Task and Project Details by @praveenkumarkarunanithi in #38595
-
Add new versions to the bug report template by @Tamilarasan-Paranthaman in #39418
-
[A11y] Fix VoiceOver does not announce project description when navigating project cards by @KarthikRajaKalaimani in #37385
-
[A11y] [Windows] Fix CollectionView items announcing internal type name instead of item content in Narrator by @praveenkumarkarunanithi in #37421
-
Bumps Syncfusion.Maui.Toolkit dependency to version 1.0.11 by @PaulAndersonS in #38393
Titlebar
-
[Mac] Fixed the Issue with the TitleBar TrailingContent not being properly aligned by @Ahamed-Ali in #36541
Toolbar
-
[iOS/MacCatalyst] Fix NavigationRenderer toolbar items losing custom tint on IsEnabled changes by @praveenkumarkarunanithi in #39062
-
[inflight/candidate] [iOS] Make toolbar items ready for vertical presentation by @kubaflo in #39321
Tooling
-
[Android] Remove obsolete XA4218 workaround by @jfversluis in #37941
-
[iOS/Mac Catalyst] Add native element registrations for DevFlow by @morning4coffe-dev in #36821
WebView
-
Increase encoded-URL WebView navigation timeout by @kubaflo in #39107
-
[Windows] Fixed : WebView CanGoBack Returns true when it Shouldn't by @SubhikshaSf4851 in #37648
-
[Android] Fix off-screen WebView crash without changing generic view handlers by @kubaflo in #38467
-
[Windows] WebView: Guard failed WebView2 initialization by @jfversluis in #38569
Window
-
Fix and Re-enable "Window Does Not Leak" and "Does Not Leak" Memory Leak Device Test by @BagavathiPerumal in #37310
-
[Android] Prevent fragment crashes during Shell and FlyoutPage root replacement by @kubaflo in #38214
-
[Mac] Fix window freeze during repeated resizing by @Vignesh-SF3580 in #38398
Xaml
-
Fix MauiXaml will generate source for every xaml file without respect to its condition by configuration/target by @KarthikRajaKalaimani in #37176
-
Fix race in WeakEventProxy field access by @baaaaif in #37568
π§ Fixes
-
[XAML SourceGen] Make compiled bindings null-tolerant for intermediate members by @simonrozsival via @Copilot in #36444
-
[Xaml] Fix static C# expressions using global usings by @StephaneDelcroix in #34926
-
Β [XAML] Fix unmatched OnPlatform default handling in XamlC and SourceGenΒ by @praveenkumarkarunanithi in #38158
-
Keep one DynamicResource registration per specificity by @otretiak in #38152
-
Fix MultiBinding Strong Target Reference Leak by @devanathan-vaithiyanathan in #38315
-
Trim unused XAML runtime code from linked apps by @simonrozsival in #38613
-
[XSG] Infer generic type for OnIdiom markup extensions by @simonrozsival in #38661
-
Fix compiled binding generation for null-conditional SetBinding calls by @Shalini-Ashokan in #38651
-
[Candidate Failure]Fix x_Array_Parsed test Failure by @SubhikshaSf4851 in #38840
-
[inflight/candidate] Fix runtime XAML trimming regression by @github-actions[bot] in #39328
π§ Infrastructure (21)
-
Shard CollectionView UI tests using historical timings by @mmitche in #37732
-
[main] Update dependencies from dotnet/xharness by @dotnet-maestro[bot] in #38524
-
Harden maui-copilot reviewer and skill validation with GPT-only models by @kubaflo in #38040
-
[CI] OneLoc: Resolve MirrorBranch during template expansion by @missymessa in #38650
-
[main] Update dependencies from dotnet/xharness by @dotnet-maestro[bot] in #38724
-
[ci] Support SkiaSharp package releases by @mattleibow in #38967
-
Localized file check-in by OneLocBuild Task: Build definition ID 1095: Build ID 3093589 by @dotnet-oneloc-localization[bot] in #38750
-
[main] Update dependencies from dotnet/xharness by @dotnet-maestro[bot] in #39138
-
Automate CI-fix Azure DevOps validation by @PureWeen in #39147
-
[Testing] Preserve build failures when binlogs end inside a GUID by @kubaflo in #39145
-
Bump the aspnetcore group with 3 updates by @dependabot[bot] in #39209
-
Bump the windowsappsdk group with 1 update by @dependabot[bot] in #39245
-
Improve CI-fix Azure queue failure diagnostics by @PureWeen in #39243
-
[main] Update dependencies from dotnet/xharness by @dotnet-maestro[bot] in #39313
-
Bump the aspnetcore group with 3 updates by @dependabot[bot] in #36865
-
Fix stale StatesChanged subscription when replacing VisualStateGroupList item by @devanathan-vaithiyanathan in #37340
-
[iOS] Remove obsolete environment variable workaround by @jfversluis in #37939
-
[inflight/candidate] [Mac]Fix initial blank page in I6_Vertical_Item_Spacing_Page on iOS 27 by @github-actions[bot] in #39319
-
[main] Update dependencies from dotnet/xharness by @dotnet-maestro[bot] in #39452
-
[CI-Improvement]Retry only failing UI-test categories across all platforms by @Ahamed-Ali in #39421
π§ͺ Testing (1)
- [Testing] Fix for DisplayAlertAsyncShouldNotCrashWhenPageUnloaded UITests failure by @TamilarasanSF4853 in #38564
π¦ Other (32)
-
Add .NET 10 SR11 to bug report versions by @kubaflo in #38453
-
Add .NET 11 RC1 to bug report versions by @kubaflo in #38456
-
[main] Backport #37708 regression coverage (conflict fallback) by @kubaflo in #38466
-
Limit skill evaluation configuration options by @PureWeen in #38572
-
[Testing] Fix MainThread isolation and integration failure diagnostics by @kubaflo in #38575
-
[iOS/MacCatalyst] Adopt scene lifecycle and AppActions dispatch by @dalexsoto in #38601
-
Consolidate test-failure review into one skill by @kubaflo in #38640
-
Add static-only skill validation mode by @PureWeen in #38573
-
Fix hosted test-review model compatibility and failure reporting by @kubaflo in #38706
-
Fix Windows device-test Helix SDK version resolution by @kubaflo in #38692
-
[main] Update Arcade to remove OneLoc PAT fallback by @missymessa in #38786
-
Restore isolated Vally evaluation workspace by @PureWeen in #38789
-
Fix locale-dependent crash in issue-triage query-issues.ps1 by @kubaflo in #39095
-
Stop agentic workflows filing [aw] Failed jobs issues they opted out of by @kubaflo in #39096
-
Restore automatic expiration of agentic workflow issues by @kubaflo in #39099
-
Fix /issue triage activation hash after shared import changes by @kubaflo in #39190
-
Resolve successfully handled /issue triage command comments by @kubaflo in #39235
-
Keep /issue triage threat detection to one canonical verdict by @kubaflo in #39250
-
Improve regression-trace evidence collection by @kubaflo in #39236
-
Fix agentic workflow evidence and runtime contracts by @kubaflo in #39332
π§ Fixes
- [aw] Daily Memory Leak Hunter is missing required data
- [aw] Daily Memory Leak Hunter reported incomplete result
- [aw] Daily Memory Leak Hunter is missing required data
- [aw] Daily Memory Leak Hunter reported incomplete result
- [aw] Daily Memory Leak Hunter is missing required data
- [aw] Memory Leak Fixer reported incomplete result
- [aw] Memory Leak Fixer reported incomplete result
- [aw] Memory Leak Fixer reported incomplete result
- [aw] Memory Leak Fixer reported incomplete result
- [aw] CI Failure Fixer (main) reported incomplete result
- [aw] CI Failure Fixer (main) reported incomplete result
- [aw] CI Failure Fixer (main) reported incomplete result
- [aw] CI Failure Fixer (net11.0) reported incomplete result
- [aw] CI Failure Fixer (net11.0) reported incomplete result
- [aw] CI Failure Fixer (net11.0) is missing required tool
- [aw] CI Failure Fixer (net11.0) reported incomplete result
- [aw] CI Failure Fixer (net11.0) reported incomplete result
- [aw] CI Failure Fixer (net11.0) reported incomplete result
- [aw] CI Failure Fixer (net11.0) is missing required tool
- [aw] CI Failure Fixer (net11.0) reported incomplete result
- [aw] Detection Runs
-
Remove automatic review-start PR comments by @kubaflo in #39382
-
[actions] Update GitHub Actions pins by @github-actions[bot] in #39392
-
[Testing] Refactoring Feature Matrix UITest Cases for IndicatorView Control by @NafeelaNazhir in #38399
-
[Android] Prevent AppBar lift target crash under GC pressure by @simonrozsival in #38636
-
Controls: Remove Regex from ShadowTypeConverter by @simonrozsival in #38615
-
[Testing] Fixed Test case failure in PR 38782- Candidate - 1 by @NafeelaNazhir in #38843
-
[Inflight/Candidate][Android] Fix for Android page disconnection during Loaded root replacement by @BagavathiPerumal in #39279
-
[inflight/candidate] [Android][Windows] Fix blank page after restoring Window.Page by @kubaflo in #39381
-
[Testing] Fixed Test case failure in PR 38782- Candidate - 2 by @NafeelaNazhir in #39361
-
[iOS] Reconstruct MAUI view peers from native handles by @jfversluis in #39422
-
September 22nd, Candidate β .NET 10 SR12 (10.0.120) by @kubaflo in #38782
Full Changelog: 10.0.110...10.0.120