Skip to content

Commit 61d7d94

Browse files
authored
March 30th, Inflight Candidate (dotnet#34617)
## What's Coming .NET MAUI inflight/candidate introduces significant improvements across all platforms with focus on quality, performance, and developer experience. This release includes 192 commits with various improvements, bug fixes, and enhancements. ## Blazor - [blazorwebview] align `SupportedOSPlatform` attribute with templates by @jonathanpeppers in https://github.com/dotnet/maui/pull/25073 ## Border - [Testing] Refactoring Feature Matrix UITest Cases for Border Control by @HarishKumarSF4517 in https://github.com/dotnet/maui/pull/34349 - Fix LayoutCycleException from nested Borders on Windows by @Oxymoron290 in https://github.com/dotnet/maui/pull/34337 <details> <summary>🔧 Fixes</summary> - [LayoutCycleException caused by nested Borders in ControlTemplates](https://github.com/dotnet/maui/issues/32406) </details> ## Button - [Android] Button with corner radius shadow broken on Android device - fix by @kubaflo in https://github.com/dotnet/maui/pull/29339 <details> <summary>🔧 Fixes</summary> - [[Android] Button with corner radius shadow broken on Android device](https://github.com/dotnet/maui/issues/20596) </details> - [iOS] Preserve AlwaysTemplate rendering mode in Button.ResizeImageIfNecessary by @kubaflo in https://github.com/dotnet/maui/pull/25107 <details> <summary>🔧 Fixes</summary> - [[iOS] TintColor on UIButton image no longer working when button made visible](https://github.com/dotnet/maui/issues/25093) </details> - [Android] Implemented Material3 support for ImageButton by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/33649 <details> <summary>🔧 Fixes</summary> - [Implement Material3 support for ImageButton](https://github.com/dotnet/maui/issues/33648) </details> - Fixed CI failure : Restore BackButtonBehavior IsEnabled after CanExecute changes by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/34668 ## CollectionView - [Windows] Fixed CollectionView with grouping fails to add items when a footer template is present or crashes when removing data. by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/24867 <details> <summary>🔧 Fixes</summary> - [[Windows] CollectionView with grouping fails to add items when a footer template is present or crashes when removing data.](https://github.com/dotnet/maui/issues/24866) - [[Windows] CollectionView Not Updating Correctly When Adding Items or Groups](https://github.com/dotnet/maui/issues/27302) - [Using CollectionView IsGrouped="True" bound to ObservableCollection causes crash](https://github.com/dotnet/maui/issues/18481) - [.net 8 CollectionView Group Add method issue](https://github.com/dotnet/maui/issues/21791) </details> - [iOS] Label LinebreakMode (TailTruncation) for FormattedText does't work in CollectionView after scroll - fix by @kubaflo in https://github.com/dotnet/maui/pull/28151 <details> <summary>🔧 Fixes</summary> - [[iOS] Label LinebreakMode (TailTruncation) for FormattedText does't work in CollectionView after scroll](https://github.com/dotnet/maui/issues/28147) </details> - [iOS] Fix CollectionView excessive height when ObservableCollection source loads with delay by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34424 <details> <summary>🔧 Fixes</summary> - [[iOS] CollectionView has excessive height if ObservableCollection source delayed in loading](https://github.com/dotnet/maui/issues/34336) </details> - [Android] Fix CollectionView sizing when wrapped in RefreshView by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/34387 <details> <summary>🔧 Fixes</summary> - [Refreshview - Collectionview sizing not working correctly](https://github.com/dotnet/maui/issues/12131) </details> - [iOS] Fix CollectionView horizontal scroll when empty inside RefreshView by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/34382 <details> <summary>🔧 Fixes</summary> - [CollectionView is scrolling left/right when the collection is empty and inside a RefreshView](https://github.com/dotnet/maui/issues/34165) </details> - [iOS/Mac] CollectionView: Fix incorrect ItemsViewScrolledEventArgs indices with grouped items by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/34240 <details> <summary>🔧 Fixes</summary> - [[iOS/Mac/Windows] CollectionView ItemsViewScrolledEventArgs are incorrect when IsGrouped = true](https://github.com/dotnet/maui/issues/17664) </details> - [iOS] Fix for CollectionView.Measure() returning incorrect height when called before the view is mounted by @BagavathiPerumal in https://github.com/dotnet/maui/pull/34331 <details> <summary>🔧 Fixes</summary> - [CollectionView messes up Measure operation on Views](https://github.com/dotnet/maui/issues/32983) </details> - [Android] Fix for CollectionView EmptyView swaps reusing stale RecyclerView item holders by @BagavathiPerumal in https://github.com/dotnet/maui/pull/34452 <details> <summary>🔧 Fixes</summary> - [I5_EmptyView_Swap - Continuously turning the "Toggle EmptyViews" on and off would cause an item from the list to show up](https://github.com/dotnet/maui/issues/34122) </details> - [Android, iOS] Fix for ContentView not clearing its Background when set to null by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/31340 <details> <summary>🔧 Fixes</summary> - [Custom selection styles for items in CollectionView are ignored when programmatically selecting an item](https://github.com/dotnet/maui/issues/18933) </details> - [Android] Fix for Android TalkBack announcing CollectionView items as clickable when SelectionMode is None by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/31516 <details> <summary>🔧 Fixes</summary> - [Android TalkBack screen reader always reads CollectionView elements as clickable](https://github.com/dotnet/maui/issues/21700) </details> - [iOS] Fix indicator dots not rendering when using indicator size with shadow by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/31463 <details> <summary>🔧 Fixes</summary> - [[iOS, Catalyst] IndicatorView – Applying IndicatorSize with Shadow causes some indicators to be invisible](https://github.com/dotnet/maui/issues/31140) </details> - [Android] Fix for ArgumentOutOfRangeException thrown by ScrollTo when an invalid group index is specified by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/31553 <details> <summary>🔧 Fixes</summary> - [[Android] ArgumentOutOfRangeException thrown by ScrollTo when group index is invalid](https://github.com/dotnet/maui/issues/31551) </details> - [Android] - Fix Inconsistent Footer Scrolling Behaviour in CollectionView with EmptyView by @prakashKannanSf3972 in https://github.com/dotnet/maui/pull/28107 <details> <summary>🔧 Fixes</summary> - [CollectionView Footer Becomes Scrollable When EmptyView is Active on Android](https://github.com/dotnet/maui/issues/28101) </details> - [Android] CollectionView: Defer RemainingItemsThresholdReached to avoid RecyclerView scroll callback warnings by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/30907 <details> <summary>🔧 Fixes</summary> - [Android: CollectionView's ScrollTo() triggers Android warnings](https://github.com/dotnet/maui/issues/23030) - [CollectionView throws java.lang.IllegalStateException on Android when using RemainingItemsThresholdReachedCommand](https://github.com/dotnet/maui/issues/25010) </details> - [iOS] Fix incorrect FirstVisibleItemIndex reported by CollectionView.Scrolled after programmatic scroll by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/33719 <details> <summary>🔧 Fixes</summary> - [[iOS, Mac] CollectionView Scrolled event reports incorrect FirstVisibleItemIndex after programmatic ScrollTo](https://github.com/dotnet/maui/issues/33614) </details> - [Android] CarouselView incorrectly reads out "double tap to activate" - fix by @kubaflo in https://github.com/dotnet/maui/pull/31418 <details> <summary>🔧 Fixes</summary> - [[Android] CarouselView incorrectly reads out "double tap to activate"](https://github.com/dotnet/maui/issues/31387) </details> - IndicatorView: Fix MaximumVisible not respected when using custom IndicatorTemplate by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/31469 <details> <summary>🔧 Fixes</summary> - [IndicatorView.MaximumVisible not respected when IndicatorTemplate is applied](https://github.com/dotnet/maui/issues/31145) </details> - [iOS] Fix for CarouselView remains interactive when disabled by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/32794 <details> <summary>🔧 Fixes</summary> - [[Android, iOS] CollectionView and CarouselView remain interactive when disabled](https://github.com/dotnet/maui/issues/32791) </details> - [Android/iOS] Fix CollectionView not respecting SafeAreaEdges settings by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/33908 <details> <summary>🔧 Fixes</summary> - [CollectionView does not respect content SafeAreaEdges choices (Regression for Android, different problem in iOS)](https://github.com/dotnet/maui/issues/33604) </details> - [Testing] Additional Feature Matrix Test Cases for CollectionView - 2 by @TamilarasanSF4853 in https://github.com/dotnet/maui/pull/33632 - [Android, Windows] Fix CollectionView handler cleanup when DataTemplateSelector switches templates by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34534 <details> <summary>🔧 Fixes</summary> - [[CV][Android] fails to disconnect handlers when items are removed or DataTemplateSelector switches templates](https://github.com/dotnet/maui/issues/32243) </details> - [iOS, Mac] Fix exponential event handler accumulation in CollectionViewHandler2 causing SnapPoints freeze by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34493 <details> <summary>🔧 Fixes</summary> - [[MAUI]I9_Scrolling-snap points: After selecting one of these two lists and clicking the 'Done' button, it will take a long time (about 20 seconds) to execute the action](https://github.com/dotnet/maui/issues/34419) </details> - [Android] Fixed CollectionView MeasureFirstItem ItemSizingStrategy Not Applied in Horizontal Layouts by @NanthiniMahalingam in https://github.com/dotnet/maui/pull/29474 <details> <summary>🔧 Fixes</summary> - [[Android] CollectionView with ItemSizingStrategy="MeasureFirstItem" Does Not Work as Expected for HorizontalList and HorizontalGrid Layouts](https://github.com/dotnet/maui/issues/29192) </details> - Fixed - Grouped CollectionView items not rendered properly on Android, works on Windows by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/27847 <details> <summary>🔧 Fixes</summary> - [Grouped CollectionView items not rendered properly on Android, works on Windows](https://github.com/dotnet/maui/issues/20855) - [[Android] ItemSizingStrategy="MeasureFirstItem" does not work correctly with VerticalGrid and grouped ItemsSource](https://github.com/dotnet/maui/issues/29191) - [Grouped CollectionView doesnt size correctly when ItemSizingStrategy="MeasureFirstItem"](https://github.com/dotnet/maui/issues/32578) </details> - [Windows] Fixed Horizontal Spacing for Horizontal List by @SubhikshaSf4851 in https://github.com/dotnet/maui/pull/28311 - [Windows, MAC] - Fix Selected State Not Being Retained in CollectionView Items When PointerOver Is Applied by @prakashKannanSf3972 in https://github.com/dotnet/maui/pull/29815 <details> <summary>🔧 Fixes</summary> - [CollectionView Selected state does not work on the selected item when combined with PointerOver.](https://github.com/dotnet/maui/issues/29484) </details> - Fix CollectionView grid spacing updates for first row and column by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/34527 <details> <summary>🔧 Fixes</summary> - [[MAUI] I2_Vertical grid for horizontal Item Spacing and Vertical Item Spacing - horizontally updating the spacing only applies to the second column](https://github.com/dotnet/maui/issues/34257) </details> - [Android] ItemsUpdatingScrollMode in CarouselView by @kubaflo in https://github.com/dotnet/maui/pull/30106 <details> <summary>🔧 Fixes</summary> - [[Android] ItemsUpdatingScrollMode in CarouselView Not Working as expected ](https://github.com/dotnet/maui/issues/29415) </details> - [Windows] Fix image shift in CarouselView when resizing the window by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/33959 <details> <summary>🔧 Fixes</summary> - [Image shifts downward when window is resized smaller](https://github.com/dotnet/maui/issues/32017) </details> - [Windows] Fixed CollectionView throws NRE when value of IsGrouped property is changed to false by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/27331 <details> <summary>🔧 Fixes</summary> - [[Windows] `CollectionView` throws NRE when value of `IsGrouped` property is changed to `false`](https://github.com/dotnet/maui/issues/17864) - [[Windows] NullReferenceException thrown When Toggling IsGrouped to True in ObservableCollection Binding](https://github.com/dotnet/maui/issues/28824) </details> - [Android] Fix the CarouselView ScrollTo issue in the candidate branch by @Ahamed-Ali in https://github.com/dotnet/maui/pull/34739 <details> <summary>🔧 Fixes</summary> - [[Android] ItemsUpdatingScrollMode in CarouselView Not Working as expected ](https://github.com/dotnet/maui/issues/29415) </details> - [iOS/MacCatalyst] Fix CollectionView cell misalignment regression on candidate branch by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/34667 <details> <summary>🔧 Fixes</summary> - [CollectionView does not respect content SafeAreaEdges choices (Regression for Android, different problem in iOS)](https://github.com/dotnet/maui/issues/33604) - [[MacOS] Misaligned items before resizing the window on MacOS](https://github.com/dotnet/maui/issues/34635) </details> - [Android] Fix CollectionView LinearItemsLayout first/last items clipped when ItemSpacing changes at runtime and candidate tests failures by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/34664 <details> <summary>🔧 Fixes</summary> - [[MAUI] I2_Spacing_ItemSpacing - First and last item on the list is truncated after changing Spacing value.](https://github.com/dotnet/maui/issues/34636) </details> ## DateTimePicker - [Android] Implemented Material3 support for DatePicker by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/33651 <details> <summary>🔧 Fixes</summary> - [Implement material3 support for DatePicker](https://github.com/dotnet/maui/issues/33650) </details> - [Windows] Fix for TimePicker rendering a default time when its value is null by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/32314 <details> <summary>🔧 Fixes</summary> - [Nullable support is not working properly on Windows TimePicker and macOS DatePicker and TImePicker](https://github.com/dotnet/maui/issues/32266) </details> - [Windows] Fix DatePicker CharacterSpacing Property Not Working by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/30495 <details> <summary>🔧 Fixes</summary> - [[Windows] DatePicker CharacterSpacing Property Not Working on Windows](https://github.com/dotnet/maui/issues/30066) </details> ## Dialogalert - [Issue-Resolver] Fix alert dialogs not displaying after dismissing modal page on iOS by @kubaflo in https://github.com/dotnet/maui/pull/32872 <details> <summary>🔧 Fixes</summary> - [Alert popup not displaying when dismissing modal page on iOS/MacOS](https://github.com/dotnet/maui/issues/32807) </details> ## Drawing - [Android] Fix GraphicsView dirtyRect mismatch when display density changes by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/34416 <details> <summary>🔧 Fixes</summary> - [Android display-size change causes parent and drawable children mismatch in .NET MAUI](https://github.com/dotnet/maui/issues/34211) </details> - [Android] Fix for Automatic Flow Direction change in Graphics View by @HarishwaranVijayakumar in https://github.com/dotnet/maui/pull/29392 <details> <summary>🔧 Fixes</summary> - [Automatic Flow Direction Change for Arabic Strings in When Drawing the String in MAUI on Android and Opposite Behavior in Windows.](https://github.com/dotnet/maui/issues/17323) </details> - [iOS, Windows] GraphicsView: Fix GetStringSize() returning inaccurate text measurements by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/30133 <details> <summary>🔧 Fixes</summary> - [[iOS] canvas.GetStringSize() is not consistent with actual string size in GraphicsView](https://github.com/dotnet/maui/issues/18679) </details> - [Android] Fix for Shadows disappearing permanently in Android after Label opacity is at any time set to "0" by @BagavathiPerumal in https://github.com/dotnet/maui/pull/30379 <details> <summary>🔧 Fixes</summary> - [Shadows disappearing permanently in Android and Windows after Label opacity is at any time set to "0"](https://github.com/dotnet/maui/issues/29764) </details> ## Entry - [Android] Fixed SelectionLength Not Updated Correctly for Right-to-Left Text Selection on Editor and Entry by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/30906 <details> <summary>🔧 Fixes</summary> - [SelectionLength in Entry and Editor behaves differently on Android and Windows if the user selected the text from right to left](https://github.com/dotnet/maui/issues/30782) </details> - [Android] Fix Java.Lang.IllegalArgumentException crash in Entry with StringFormat binding by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34427 <details> <summary>🔧 Fixes</summary> - [App crashes when entry bound to float value with fractional format](https://github.com/dotnet/maui/issues/25728) </details> - [Android] Implement material3 support for Entry by @HarishwaranVijayakumar in https://github.com/dotnet/maui/pull/33673 <details> <summary>🔧 Fixes</summary> - [Implement Material3 support for Entry](https://github.com/dotnet/maui/issues/33672) </details> - [Windows] Fix Narrator announcing typed characters for password Entry by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/33600 <details> <summary>🔧 Fixes</summary> - [Entry with IsPassword=true exposes entered text to screen readers (Windows Narrator)](https://github.com/dotnet/maui/issues/33577) </details> - SelectionLength property update when entry is focused - fix by @kubaflo in https://github.com/dotnet/maui/pull/26213 <details> <summary>🔧 Fixes</summary> - [SelectionLength Property Not Applied to Entry at Runtime](https://github.com/dotnet/maui/issues/26158) </details> - Fixed Early casting in Entry bound to double for negative decimal input by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/30540 <details> <summary>🔧 Fixes</summary> - [Entry bound to a double casts values too early, preventing small negative decimal entries](https://github.com/dotnet/maui/issues/30181) </details> - Revert "SelectionLength property update when entry is focused - fix (#26213)" by @Ahamed-Ali via @Copilot in https://github.com/dotnet/maui/pull/34753 ## Essentials - [iOS] Permissions.RequestAsync<Permissions.Sensors> does not return a value on iOS16+ - fix by @kubaflo in https://github.com/dotnet/maui/pull/30733 <details> <summary>🔧 Fixes</summary> - [[iOS] Permissions.RequestAsync<Permissions.Sensors> does not return a value on iOS16+](https://github.com/dotnet/maui/issues/18669) </details> - [iOS] Fix PickContactAsync blocking subsequent dialog presentation by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34425 <details> <summary>🔧 Fixes</summary> - [When PickContactAsync() returns, it prevents other windows to show](https://github.com/dotnet/maui/issues/20383) </details> - Refactor image rotation and PNG format logic by @kubaflo in https://github.com/dotnet/maui/pull/33140 <details> <summary>🔧 Fixes</summary> - [[iOS] MediaPicker ShouldUsePngFormat method has conflicting/redundant code](https://github.com/dotnet/maui/issues/33119) </details> - [Regression][Windows]Fix Exception thrown on .NET 10 Windows when calling Permissions.CheckStatusAsync<Permissions.Microphone>() by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/33179 <details> <summary>🔧 Fixes</summary> - [Exception thrown on .NET 10 Windows when calling Permissions.CheckStatusAsync<Permissions.Microphone>()](https://github.com/dotnet/maui/issues/32989) </details> - [iOS] Fixed the ConnectivityChanged event is not triggered when toggling Wifi (turning it on or off) by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/29606 <details> <summary>🔧 Fixes</summary> - [Connectivity.ConnectivityChanged not fired on iOS](https://github.com/dotnet/maui/issues/28961) </details> ## Flyout - [iOS] Fix Flyout icon visibility when popping page using PopAsync or PopToRootAsync by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/29779 <details> <summary>🔧 Fixes</summary> - [Flyout Button Disappears](https://github.com/dotnet/maui/issues/21828) </details> - [Android, iOS] - Flyout icon should remain visible when a page is pushed onto a NavigationPage or Shell page with the back button disabled. by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/28187 <details> <summary>🔧 Fixes</summary> - [Android - Hamburger icon is not visible on a page pushed on a Navigation Page](https://github.com/dotnet/maui/issues/21646) </details> - [Android] Flyout IsGestureEnabled fix by @kubaflo in https://github.com/dotnet/maui/pull/21686 <details> <summary>🔧 Fixes</summary> - [FlyoutPage IsGestureEnabled not working on Android](https://github.com/dotnet/maui/issues/21240) </details> ## Flyoutpage - [iOS] Fix FlyoutPage toolbar items visibility and ordering by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/31067 <details> <summary>🔧 Fixes</summary> - [Flyout page toolbar items not rendered on iOS](https://github.com/dotnet/maui/issues/30888) </details> ## Fonts - [Android] Fix SwipeItem FontImageSource.Size being ignored by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/34505 <details> <summary>🔧 Fixes</summary> - [[Android] SwipeItem ignores FontImageSource rendered size and always scales icons to container height, unlike iOS](https://github.com/dotnet/maui/issues/34210) </details> ## Gestures - [iOS] SwipeGestureRecognizer: Fix swipe direction detection on rotated views by @BagavathiPerumal in https://github.com/dotnet/maui/pull/30878 <details> <summary>🔧 Fixes</summary> - [Swipe gestures attached to rotated controls are rotated on Android](https://github.com/dotnet/maui/issues/15280) </details> - Fix: Replace double.IsFinite to resolve compilation errors in SwipeGestureExtensions by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34511 - [iOS/Mac] SwipeGestureRecognizer: Avoid firing parent swipes during child scroll gestures by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/33525 <details> <summary>🔧 Fixes</summary> - [Inconsistent behavior when using SwipeGestureRecognizer - iOS vs Android](https://github.com/dotnet/maui/issues/33375) </details> - [Windows] Fix for inconsistent PanGestureRecognizer behavior on Windows compared to other platforms. by @HarishwaranVijayakumar in https://github.com/dotnet/maui/pull/34112 <details> <summary>🔧 Fixes</summary> - [PanGestureRecognizer behaves differently on Windows to other platforms](https://github.com/dotnet/maui/issues/24252) </details> - Windows: Fix PanGestureRecognizer not starting when drag begins near control edge by @jpd21122012 in https://github.com/dotnet/maui/pull/34362 <details> <summary>🔧 Fixes</summary> - [PanGestureRecognizer PanUPdated not firing when mouse cursor is on the first pixel of control](https://github.com/dotnet/maui/issues/34119) </details> - Fix pan & swipe update event values on Windows by @jeremy-visionaid in https://github.com/dotnet/maui/pull/33540 ## Image - [iOS, Android] Fix for Incorrect Orientation in HEIC and JPG Images During Resize by @HarishwaranVijayakumar in https://github.com/dotnet/maui/pull/29769 <details> <summary>🔧 Fixes</summary> - [Some HEIC photos is upside down after using PlatformImage.Resize](https://github.com/dotnet/maui/issues/23832) </details> - [iOS] - Fixed ImageSource.FromFile fails when image in subfolder by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/31258 <details> <summary>🔧 Fixes</summary> - [Microsoft.Maui.Controls.ImageSource.FromFile fails in iOS when image in subfolder](https://github.com/dotnet/maui/issues/22887) </details> - [Windows] Fixed COMException when changing Image Aspect to Fill by @SubhikshaSf4851 in https://github.com/dotnet/maui/pull/34033 <details> <summary>🔧 Fixes</summary> - [System.Runtime.InteropServices.COMException thrown when setting Image.Aspect = AspectFill via data binding on Windows](https://github.com/dotnet/maui/issues/29812) </details> - [Windows] FontImageSource: Fix center alignment inside Image by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/30068 <details> <summary>🔧 Fixes</summary> - ["FontImageSource not center-aligned inside Image control in .NET MAUI"](https://github.com/dotnet/maui/issues/30004) </details> - [MacOS] Fixed NullReferenceException when using ImagePaint by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/28726 <details> <summary>🔧 Fixes</summary> - [[graphics] PlatformCanvas.DrawImageCallback throws System.NullReferenceException when using ImagePaint on Mac/iOS](https://github.com/dotnet/maui/issues/19642) </details> ## Label - [iOS] Fix Label background not clipped when Clip property is set by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/34276 <details> <summary>🔧 Fixes</summary> - [[iOS, Mac, Windows] Label Clip Property Not Working Properly](https://github.com/dotnet/maui/issues/34114) </details> - [iOS][Android] Label: Fix RTL padding not mirroring by @kubaflo in https://github.com/dotnet/maui/pull/32333 <details> <summary>🔧 Fixes</summary> - [[Label] RTL mode: Padding for the label is not mirroring properly(Android, iOS, Mac)](https://github.com/dotnet/maui/issues/32316) </details> - Fix CharacterSpacing Set on Label Does Not Apply to Spans in FormattedString by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/33907 <details> <summary>🔧 Fixes</summary> - [CharacterSpacing Set on Label Does Not Apply to Spans in FormattedString](https://github.com/dotnet/maui/issues/33904) </details> - [iOS] Fix Label with TailTruncation not rendering after empty-to-non-empty text transition by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/34698 <details> <summary>🔧 Fixes</summary> - [Label with LineBreakMode="TailTruncation" does not render text if initial Text is null or empty on first render (iOS)](https://github.com/dotnet/maui/issues/34591) </details> - Revert "[iOS] Fix Label with TailTruncation not rendering after empty-to-non-empty text transition" by @kubaflo in https://github.com/dotnet/maui/pull/34808 ## Layout - Fix FlexLayout items with dynamic WidthRequest not updating on Android by @Oxymoron290 in https://github.com/dotnet/maui/pull/34454 <details> <summary>🔧 Fixes</summary> - [FlexLayout items with Dynamic Width are not updating correctly on orientation change or scroll in Android](https://github.com/dotnet/maui/issues/31109) </details> - [Windows] Fixed Setting a ContentView with a content of StaticResource Style Causes a System.Runtime.InteropServices.COMException. by @Ahamed-Ali in https://github.com/dotnet/maui/pull/30047 <details> <summary>🔧 Fixes</summary> - [[Windows] Setting a ContentView with a content of StaticResource Style Causes a System.Runtime.InteropServices.COMException.](https://github.com/dotnet/maui/issues/29930) </details> - [Android] Fix the Setting Content of ContentView through style would crash on parent change by @Ahamed-Ali in https://github.com/dotnet/maui/pull/29931 <details> <summary>🔧 Fixes</summary> - [Setting Content of `ContentView` through style would crash on parent change](https://github.com/dotnet/maui/issues/11812) </details> - Bugfix/26633 grid layout manager by @maonaoda in https://github.com/dotnet/maui/pull/26641 <details> <summary>🔧 Fixes</summary> - [[iOS/maccatalyst/Android] Label height in Grid with ColumnSpacing > 0 incorrect in certain cases](https://github.com/dotnet/maui/issues/26633) </details> - Fixed the Label height nested VerticalStackLayout is truncated when width is set by @NanthiniMahalingam in https://github.com/dotnet/maui/pull/25748 <details> <summary>🔧 Fixes</summary> - [Layout Error: Label height within VerticalStackLayout is truncated when width is set](https://github.com/dotnet/maui/issues/15559) </details> - Fix FlexLayout Grow causes measured child sizes to be ignored by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/34535 <details> <summary>🔧 Fixes</summary> - [FlexLayout Grow causes measured child sizes to be ignored](https://github.com/dotnet/maui/issues/34464) </details> ## Map - Fix Android/iOS map polygon clearing issue by resetting MapElementId by @mattleibow via @Copilot in https://github.com/dotnet/maui/pull/30116 <details> <summary>🔧 Fixes</summary> - [Cannot Clear All Map Polygons (Android Only)](https://github.com/dotnet/maui/issues/30097) </details> - [Android] Fix MapElements.Clear() not removing native elements from Google Map by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/33855 <details> <summary>🔧 Fixes</summary> - [[Android] MapElements.Clear() and polygon property changes don't sync to native Google Map](https://github.com/dotnet/maui/issues/33635) </details> ## Mediapicker - [Android] Fix picked images end up with unexpected "_processed" suffix by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/33439 <details> <summary>🔧 Fixes</summary> - [[Android] picked images end up with unexpected "_processed" suffix](https://github.com/dotnet/maui/issues/33258) </details> - [iOS] Fix MediaPicker.PickPhotosAsync returning empty list when selecting 4+ images with CompressionQuality set by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34281 <details> <summary>🔧 Fixes</summary> - [[iOS] MediaPicker.PickPhotosAsync unable to pick multiple images with compressionQuality set](https://github.com/dotnet/maui/issues/33954) </details> - [Android] Essentials: Cancel pending picker tasks when IntermediateActivity is destroyed in SingleTask mode by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/33888 <details> <summary>🔧 Fixes</summary> - [[Android] MediaPicker gets stuck if LaunchMode is SingleTask](https://github.com/dotnet/maui/issues/33706) </details> - Removed PhotosAddOnly permission request within MediaPicker.ios by @Kyranio in https://github.com/dotnet/maui/pull/34287 <details> <summary>🔧 Fixes</summary> - [iOS MediaPicker CapturePhotoAsync without "PhotosAddOnly" permission](https://github.com/dotnet/maui/issues/34246) - [MediaPicker.CapturePhotoAsync() fails with UnauthorisedAccessException on IOS despite successfully being Granted Access](https://github.com/dotnet/maui/issues/34661) </details> ## Navigation - [iOS 26] Fix NavigationPage hang after rapidly pushing and popping pages by @mduchev in https://github.com/dotnet/maui/pull/34481 <details> <summary>🔧 Fixes</summary> - [[iOS 26] Navigation hangs after rapidly open and closing new page using Navigation.PushAsync](https://github.com/dotnet/maui/issues/34480) </details> - [Android] Prevent tabs from being removed during Disappearing by @jfversluis in https://github.com/dotnet/maui/pull/32878 <details> <summary>🔧 Fixes</summary> - [prevent tabs from being removed during Disappearing](https://github.com/dotnet/maui/issues/30290) </details> - [iOS] Shell: Fix page viewport offset when Entry focused on page load by @BagavathiPerumal in https://github.com/dotnet/maui/pull/33958 <details> <summary>🔧 Fixes</summary> - [[iOS] Shell Page gets moved partially outside of viewport when focusing element on page load](https://github.com/dotnet/maui/issues/33547) </details> - [iOS] Trigger OnNavigatedTo method when hide the nav bar and using swipe by @kubaflo in https://github.com/dotnet/maui/pull/28694 <details> <summary>🔧 Fixes</summary> - [Not trigger OnNavigatedTo method when hide the navi bar and using swipe back on iOS](https://github.com/dotnet/maui/issues/27143) </details> - [Windows] Fix for NavigationPage transitions still animating when passing animated false to PushAsync or PopAsync by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/30753 <details> <summary>🔧 Fixes</summary> - [WinUI: NavigationPage transitions still animate when passing `animated: false` to PushAsync/PopAsync](https://github.com/dotnet/maui/issues/11808) </details> - [Android] Navigation bar - left margin fix by @kubaflo in https://github.com/dotnet/maui/pull/20967 <details> <summary>🔧 Fixes</summary> - [Wrong left margin in the navigation bar on Android](https://github.com/dotnet/maui/issues/18843) </details> - [iOS 26] Fix NavigationPage blank screen after rapidly pushing and popping pages by @mduchev in https://github.com/dotnet/maui/pull/34595 <details> <summary>🔧 Fixes</summary> - [[iOS 26] Navigation hangs after rapidly open and closing new page using Navigation.PushAsync](https://github.com/dotnet/maui/issues/34480) </details> ## Picker - [Android] Fix for disabled Picker prevents the parent container's GestureRecognizer from being triggered by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/29814 <details> <summary>🔧 Fixes</summary> - [[Android] Disabled Picker view intercepts GestureRecognizer of parent container](https://github.com/dotnet/maui/issues/22565) </details> ## Progressbar - [iOS] Fixed ProgressBar Flow Direction on iOS26 by @SubhikshaSf4851 in https://github.com/dotnet/maui/pull/34015 <details> <summary>🔧 Fixes</summary> - [[iOS] Flow direction not works on ProgressBar on ios 26](https://github.com/dotnet/maui/issues/33969) </details> ## RadioButton - Fix for Binding failure in RadioButton after .NET 10 upgrade by @BagavathiPerumal in https://github.com/dotnet/maui/pull/34285 <details> <summary>🔧 Fixes</summary> - [Binding in my RadioButton broke with .NET 10 upgrade](https://github.com/dotnet/maui/issues/33293) </details> - [Windows/Android] Fix RadioButton TextTransform Property not working by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/29730 <details> <summary>🔧 Fixes</summary> - [[Android, Windows] RadioButton TextTransform Property Does Not Apply on Android and Windows Platforms](https://github.com/dotnet/maui/issues/29729) </details> ## ScrollView - [iOS] Fix Scrollbar does not align with FlowDirection=RightToLeft in WebView and HybridWebView by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/30653 <details> <summary>🔧 Fixes</summary> - [[iOS] Scrollbar does not align with FlowDirection=RightToLeft in WebView and HybridWebView](https://github.com/dotnet/maui/issues/30605) </details> - [Android] CollectionView: Fix item spacing applied on outer edges causing scroll/rendering issues by @kubaflo in https://github.com/dotnet/maui/pull/27093 <details> <summary>🔧 Fixes</summary> - [[Android] Spacing in the ItemsLayout of CollectionView stops it from scrolling.](https://github.com/dotnet/maui/issues/24511) - [Items are stuck to the CollectionView when there is ItemSpacing](https://github.com/dotnet/maui/issues/8422) - [CollectionView snaps on scroll although snapping is disabled](https://github.com/dotnet/maui/issues/18367) - [CollectionView's scroll is not continuous](https://github.com/dotnet/maui/issues/17127) - [Performance issue with CollectionView when using spacing](https://github.com/dotnet/maui/issues/30979) - [CollectionView Scroll not working properly with ItemsLayout.ItemSpacing](https://github.com/dotnet/maui/issues/31966) </details> - [iOS][Windows] ScrollView: Fix ScrollToAsync hanging when already at target position by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/27300 <details> <summary>🔧 Fixes</summary> - [ScrollView's ScrollToAsync doesn't complete when called thrice with the same value](https://github.com/dotnet/maui/issues/27250) </details> - [Android] ScrollView - Setting SetClipChildren to false by @kubaflo in https://github.com/dotnet/maui/pull/26475 <details> <summary>🔧 Fixes</summary> - [Shadow Doesn't Work on Grid on Android](https://github.com/dotnet/maui/issues/20922) </details> ## Searchbar - [Android] Implemented Material3 support for SearchBar by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/33948 <details> <summary>🔧 Fixes</summary> - [Implement Material3 support for SearchBar](https://github.com/dotnet/maui/issues/33947) </details> - [iOS] Fix SearchBar.CancelButtonColor not applied on iOS 26 by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34291 <details> <summary>🔧 Fixes</summary> - [[iOS] Search Bar cancel button color not applied on iOS 26](https://github.com/dotnet/maui/issues/33964) </details> - [iOS] - Fixed SearchBar Dimension Handling to Respect WidthRequest and HeightRequest Values by @prakashKannanSf3972 in https://github.com/dotnet/maui/pull/27449 <details> <summary>🔧 Fixes</summary> - [[MAUI] - iOS SearchBar ignores WidthRequest and HeightRequest property values](https://github.com/dotnet/maui/issues/27427) </details> - [Android][iOS] SearchBar: Fix UserInteractionEnabled not respecting IsEnabled by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/27009 <details> <summary>🔧 Fixes</summary> - [SearchBar IsEnabled property not functioning](https://github.com/dotnet/maui/issues/14566) </details> - [iOS] Fix SearchBar Black Background Issue When Setting Transparent Background by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/29225 <details> <summary>🔧 Fixes</summary> - [[iOS][maccatalyst] SearchBar BackgroundColor is black when set to transparent](https://github.com/dotnet/maui/issues/11677) </details> - [Android] [Windows] Fixed text deletion via the clear icon in SearchBar when IsReadOnly is true by @Tamilarasan-Paranthaman in https://github.com/dotnet/maui/pull/29592 <details> <summary>🔧 Fixes</summary> - [[Android, Windows] SearchBar with IsReadOnly=True still allows text deletion While pressing delete icon](https://github.com/dotnet/maui/issues/29547) </details> ## SearchBar - [Android] Fix SearchHandler displays both Expanded and Collapsible views when SearchBoxVisibility changes at runtime by @Tamilarasan-Paranthaman in https://github.com/dotnet/maui/pull/33774 <details> <summary>🔧 Fixes</summary> - [[Android] SearchHandler displays both Expanded and Collapsible views when SearchBoxVisibility changes at runtime](https://github.com/dotnet/maui/issues/33772) </details> - [iOS 26] Fixed Placeholder text of SearchHandler is not displayed by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/34016 <details> <summary>🔧 Fixes</summary> - [[iOS 26] Placeholder text of SearchHandler is not displaying properly](https://github.com/dotnet/maui/issues/33972) </details> ## Shell - [Shell] Fix OnNavigatingFrom reporting wrong DestinationPage by @SubhikshaSf4851 in https://github.com/dotnet/maui/pull/34404 <details> <summary>🔧 Fixes</summary> - [OnNavigatingFrom is reporting wrong DestinationPage](https://github.com/dotnet/maui/issues/34073) </details> - [iOS][Android] Shell: Fix tab bar visibility and selection after first tab becomes invisible by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/34372 <details> <summary>🔧 Fixes</summary> - [TabBar displays wrong tabs after first tab becomes invisible](https://github.com/dotnet/maui/issues/34343) </details> - [Android] Tabs briefly display wrong background color when navigating between flyout items by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/29883 <details> <summary>🔧 Fixes</summary> - [[Android] Tabs briefly display wrong background color when navigating between flyout items](https://github.com/dotnet/maui/issues/16522) </details> - [iOS] Shell: Fix 'More' tab navigation bar not applying Shell appearance customization by @kubaflo in https://github.com/dotnet/maui/pull/27848 <details> <summary>🔧 Fixes</summary> - [[iOS] [Shell] The 'More' tab doesn't respect shell's nav bar customization](https://github.com/dotnet/maui/issues/27846) - [iOS Tab "More" page breaks some styling](https://github.com/dotnet/maui/issues/26975) </details> - [Shell] Fix InvalidCastException when using QueryPropertyAttribute with nullable types by @kubaflo in https://github.com/dotnet/maui/pull/33429 <details> <summary>🔧 Fixes</summary> - [System.InvalidCastException when using QueryPropertyAttribute with nullable types](https://github.com/dotnet/maui/issues/33420) </details> - Fix for Shell back navigation using GoToAsync not triggering page transition to the previous page by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/32241 <details> <summary>🔧 Fixes</summary> - [Shell's back behavior using GoToAsync("..") triggers no page transition for first detail page on iOS](https://github.com/dotnet/maui/issues/19074) </details> - Refactored ShellFlyoutTemplatedContentRenderer InsetListener by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/32471 - [Android] Shell: Implement Material 3 theming support by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/33427 <details> <summary>🔧 Fixes</summary> - [Implement Material3 support for Shell](https://github.com/dotnet/maui/issues/33424) </details> - [MacCatalyst] Shell: Fix ShellContent tab titles not rendering when entering full-screen by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/28468 <details> <summary>🔧 Fixes</summary> - [Shell Content Title Not Rendering in Full-Screen Mode on Mac Catalyst](https://github.com/dotnet/maui/issues/26864) - [Mac Catalyst loses Shell Content items under Tabs only when maximized](https://github.com/dotnet/maui/issues/15057) </details> - [iOS/Mac] Shell: Prevent double back-navigation on rapid push/pop in iOS 26 by @SubhikshaSf4851 in https://github.com/dotnet/maui/pull/34377 <details> <summary>🔧 Fixes</summary> - [[MacOS26] L3_Navigation.PushAsync - Rapidly opening and closing NewPage1 will sometimes lead you back to BugFixes Category](https://github.com/dotnet/maui/issues/33493) </details> - [Android, iOS] Fix for Shell flyout navigation fires NavigatedTo before Loaded event by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/30757 <details> <summary>🔧 Fixes</summary> - [`Shell.CurrentState` doesn't match `Shell.CurrentPage` when `Page.NavigatedTo` is called using a relative route](https://github.com/dotnet/maui/issues/29428) </details> - [Android, iOS, macOS] Fixed Shell SearchHandler Command Not Executed on Item Selection by @NanthiniMahalingam in https://github.com/dotnet/maui/pull/30009 <details> <summary>🔧 Fixes</summary> - [SearchHandler Command is not executed on iOS](https://github.com/dotnet/maui/issues/19219) </details> - Shell: Update flyout behavior when items are dynamically replaced by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/28241 <details> <summary>🔧 Fixes</summary> - [Shell crashes when tapping on flyout menu item after items replaced](https://github.com/dotnet/maui/issues/28078) </details> - [iOS/MacCatalyst] Fix Shell TabBarDisabledColor not working on disabled tabs by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/33955 <details> <summary>🔧 Fixes</summary> - [[iOS] TabBarDisabledColor is not applied when the TabBar is in a disabled state](https://github.com/dotnet/maui/issues/32995) </details> - Fix Changing Shell.NavBarIsVisible does not update the nav bar by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/30339 <details> <summary>🔧 Fixes</summary> - [Changing Shell.NavBarIsVisible does not update the nav bar on Mac / iOS](https://github.com/dotnet/maui/issues/17550) </details> - [Android] Fix for Shell custom FlyoutIcon display problem by @Ahamed-Ali in https://github.com/dotnet/maui/pull/27502 <details> <summary>🔧 Fixes</summary> - [.NET MAUI set AppShell custom FlyoutIcon display problem](https://github.com/dotnet/maui/issues/25920) - [FlyoutIcon does not show in alternate theme](https://github.com/dotnet/maui/issues/20392) - [Custom Shell FlyoutIcon is all white](https://github.com/dotnet/maui/issues/20682) </details> - Fixed Shell TitleView disappears when switching between tabs on Android by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/33469 <details> <summary>🔧 Fixes</summary> - [[Android] TitleView defined in Shell is lost when changing tabs](https://github.com/dotnet/maui/issues/33304) </details> - [Android/iOS/MacCatalyst] Shell.ForegroundColor: Reset back button color to platform default by @SubhikshaSf4851 in https://github.com/dotnet/maui/pull/33962 <details> <summary>🔧 Fixes</summary> - [[iOS, Android, Catalyst] Shell.ForegroundColor does not reset correctly for the back button.](https://github.com/dotnet/maui/issues/33909) </details> - [Windows] Fix for Shell.FlyoutVerticalScrollMode="Disabled" does not disable scrolling by @HarishwaranVijayakumar in https://github.com/dotnet/maui/pull/32516 <details> <summary>🔧 Fixes</summary> - [[Android, Windows] Shell.FlyoutVerticalScrollMode="Disabled" does not disable scrolling](https://github.com/dotnet/maui/issues/32416) </details> - [PR-Agent] Fix ApplyQueryAttributes called with empty dictionary on back by @kubaflo in https://github.com/dotnet/maui/pull/33451 <details> <summary>🔧 Fixes</summary> - [ApplyQueryAttributes gets called with empty Dictionary on back](https://github.com/dotnet/maui/issues/33415) </details> - Removed SearchHandler Style Definitions by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/29955 <details> <summary>🔧 Fixes</summary> - [Styles don't propagate to SearchHandler](https://github.com/dotnet/maui/issues/6972) </details> - Fixed Query parameters not passed on Shell navigation by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/30034 <details> <summary>🔧 Fixes</summary> - [Navigation data does not get passed on first navigation after app is loaded or resumed](https://github.com/dotnet/maui/issues/10509) - [QueryProperty not set for ShellItem pages](https://github.com/dotnet/maui/issues/11113) - [Order of calling `Shell.Navigated` and `ApplyQueryAttributes` changes/is inconsistent](https://github.com/dotnet/maui/issues/29645) - [Maui Shell weird navigation issue with timing of ApplyQueryAttributes and Page Lifecycle](https://github.com/dotnet/maui/issues/24241) </details> - [iOS] Fixed the flyout icon and content page disappeared when focus on the shell search handler by @NanthiniMahalingam in https://github.com/dotnet/maui/pull/28474 <details> <summary>🔧 Fixes</summary> - [[iOS] Flyout button and title disappears after focusing shell search](https://github.com/dotnet/maui/issues/22060) </details> - [iOS] BackButtonBehavior IsEnabled - fix by @kubaflo in https://github.com/dotnet/maui/pull/28734 <details> <summary>🔧 Fixes</summary> - [IsEnabled does not work in BackButtonBehavior](https://github.com/dotnet/maui/issues/28722) </details> - [iOS, MacOS] [Candidate branch]Fix ShellFlyoutNavigationEventOrderShouldBeCorrect UI test failure on iOS 26.1+ by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/34782 ## Slider - [Android] Implement material3 support for Slider by @HarishwaranVijayakumar in https://github.com/dotnet/maui/pull/33603 <details> <summary>🔧 Fixes</summary> - [Implement Material3 support for Slider control](https://github.com/dotnet/maui/issues/33601) </details> - Fix CS0246: Replace MauiMaterialSlider with Slider in SliderExtensions by @sheiksyedm in https://github.com/dotnet/maui/pull/34539 - Fix incorrect access modifier in Slider extension by @HarishwaranVijayakumar in https://github.com/dotnet/maui/pull/34553 - [Windows] Fixed: Setting BackgroundColor for Slider updates the MaximumTrackColor by @Tamilarasan-Paranthaman in https://github.com/dotnet/maui/pull/30089 <details> <summary>🔧 Fixes</summary> - [[Windows] Setting BackgroundColor for Slider updates the Maximum Track Color](https://github.com/dotnet/maui/issues/25921) </details> ## Stepper - [iOS 26] Stepper: Fix not reaching min/max when increment exceeds remaining range by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/34081 <details> <summary>🔧 Fixes</summary> - [[iOS26] - Stepper control fails to reach maximum value when increment exceeds remaining threshold](https://github.com/dotnet/maui/issues/33769) </details> - [iOS & MacCatalyst] Fixed Flowdirection in Stepper by @SubhikshaSf4851 in https://github.com/dotnet/maui/pull/34005 <details> <summary>🔧 Fixes</summary> - [Stepper Ignores RightToLeft FlowDirection on iOS and macOS](https://github.com/dotnet/maui/issues/29704) </details> ## SwipeView - SwipeView: Fix scroll parent detection race condition in DataTemplate scenarios and scroll delta sign by @kubaflo in https://github.com/dotnet/maui/pull/25233 <details> <summary>🔧 Fixes</summary> - [CollectionView with SwipeView items behave strangely](https://github.com/dotnet/maui/issues/24603) </details> - [Android] Fix crash when shared swipe actions are used across multiple rows by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/34492 <details> <summary>🔧 Fixes</summary> - [SwipeItems referencing causes crash on Android. [Duplicate of #18429]](https://github.com/dotnet/maui/issues/19331) </details> ## Switch - [Android] Switch: Add opt-in Material3 support by @NirmalKumarYuvaraj in https://github.com/dotnet/maui/pull/33132 <details> <summary>🔧 Fixes</summary> - [Implement Material3 Support for Switch Control](https://github.com/dotnet/maui/issues/33131) </details> - [Windows] Fixed : Switch control default width issue by @Tamilarasan-Paranthaman in https://github.com/dotnet/maui/pull/30538 <details> <summary>🔧 Fixes</summary> - [Switch control shows a big end margin.](https://github.com/dotnet/maui/issues/28901) - [[Windows] Switch HorizontalOptions="End" not working](https://github.com/dotnet/maui/issues/30273) - [Switch control on Windows ignores layout and align options](https://github.com/dotnet/maui/issues/10107) </details> ## TabbedPage - [iOS, Mac] Fix for TabbedPage FlowDirection Property Renders Opposite Layout Direction When Set via ViewModel Binding by @BagavathiPerumal in https://github.com/dotnet/maui/pull/31453 <details> <summary>🔧 Fixes</summary> - [[iOS, Mac] TabbedPage FlowDirection Property Renders Opposite Layout Direction When Set via ViewModel Binding](https://github.com/dotnet/maui/issues/31121) </details> - [Android] Fixed TabbedPage bar background visual bug when using gradient stops with transparent colors. by @SubhikshaSf4851 in https://github.com/dotnet/maui/pull/32392 <details> <summary>🔧 Fixes</summary> - [TabbedPage Barbackground visual bug when using Linear or Radial GradientBrush](https://github.com/dotnet/maui/issues/12324) </details> - [Testing] Feature Matrix UITest Cases for TabbedPage by @TamilarasanSF4853 in https://github.com/dotnet/maui/pull/31572 - [iOS] Fix GitHubIssue6184 regression on candidate — TabBarDisabledColor fix disabled More button when tabs > 5 by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/34745 ## Theming - Fix: missing style file in single file bundle by @ilonatommy in https://github.com/dotnet/maui/pull/33692 ## Titlebar - [Windows] Fix TitleBar color not applied to the Flyout icon background during initial loading by @Tamilarasan-Paranthaman in https://github.com/dotnet/maui/pull/32789 <details> <summary>🔧 Fixes</summary> - [The flyout icon and background appear awkward when enabled alongside a TitleBar.](https://github.com/dotnet/maui/issues/25081) </details> ## Toolbar - [Windows] Fix for crash when navigating to an existing page using SetTitleView in a Flyout menu on Windows by @BagavathiPerumal in https://github.com/dotnet/maui/pull/32800 <details> <summary>🔧 Fixes</summary> - [Switching to an existing page with SetTitleView used in Flyout menu causes "Element is already the child of another element" crash on Windows in MAUI 8.0.6](https://github.com/dotnet/maui/issues/21037) </details> - [Android] ToolbarItems Tooltip text color by @kubaflo in https://github.com/dotnet/maui/pull/28427 <details> <summary>🔧 Fixes</summary> - [ToolbarItems Tooltip wrong theme](https://github.com/dotnet/maui/issues/28421) </details> ## Window - [Android, iOS] Throw exceptions consistently for invalid StaticResource references to prevent relaunch crashes by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/33859 <details> <summary>🔧 Fixes</summary> - [Opening a page with an undefined control template crashes on iOS only when not debugging](https://github.com/dotnet/maui/issues/23903) </details> - [Windows]Fix for AdaptiveTrigger Not Firing When Changing Window Width Programmatically by @BagavathiPerumal in https://github.com/dotnet/maui/pull/33066 <details> <summary>🔧 Fixes</summary> - [AdaptiveTrigger not firing when changing window width programmatically only](https://github.com/dotnet/maui/issues/27646) </details> ## Xaml - Fix Compiled Bindings with explicit sources inside DataTemplates by @SubhikshaSf4851 in https://github.com/dotnet/maui/pull/34447 <details> <summary>🔧 Fixes</summary> - [TapGesture Bindings broken inside CollectionView with .NET 10](https://github.com/dotnet/maui/issues/33291) </details> - [XAML] Fix type resolver incorrectly matching static Extension classes instead of Enum types by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/34446 <details> <summary>🔧 Fixes</summary> - [SourceGen MauiXamlInflator using wrong type when working with Enum and extension class](https://github.com/dotnet/maui/issues/34021) </details> - Fixed SourceGen with invalid x:DataType or invalid bindings does not emit errors by @KarthikRajaKalaimani in https://github.com/dotnet/maui/pull/34078 <details> <summary>🔧 Fixes</summary> - [SourceGen with invalid x:DataType or invalid bindings does not emit errors](https://github.com/dotnet/maui/issues/33417) </details> <details> <summary>🔧 Infrastructure (1)</summary> - Fix conflicts and build failures in inflight/current branch by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/34495 </details> <details> <summary>🧪 Testing (19)</summary> - [Testing] Feature Matrix UITest Cases for Shell Navigation Page by @NafeelaNazhir in https://github.com/dotnet/maui/pull/34321 - [Testing] Refactoring Feature Matrix UITest Cases for BoxView Control by @HarishKumarSF4517 in https://github.com/dotnet/maui/pull/34406 - [Testing] Fix for flaky UITests in CI - 2 by @TamilarasanSF4853 in https://github.com/dotnet/maui/pull/33470 - [Testing] Additional Feature Matrix Event Test Cases for Stepper, RefreshView and FlyoutPage by @nivetha-nagalingam in https://github.com/dotnet/maui/pull/34323 - [Testing] Resolved build error in CollectionView scrolling feature tests by @TamilarasanSF4853 in https://github.com/dotnet/maui/pull/34613 - [Testing] Resolved build error in inflight/current branch by @TamilarasanSF4853 in https://github.com/dotnet/maui/pull/34616 - [Testing] Fixed Build error on inflight/ candidate PR 34617 by @TamilarasanSF4853 in https://github.com/dotnet/maui/pull/34639 - Fix CI failures for Convert and ConvertIsCultureAware tests by @Dhivya-SF4094 in https://github.com/dotnet/maui/pull/34643 - Fix CI failure [WebView] FlowDirection is set correctly(flowDirection: RightToLeft) device tests by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/34645 - Fix CI failure for NavBarIsVisibleUpdates unit test by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/34648 - Fix CI failure for NavigatingAwayFromTabbedPageResizesContentPage device tests by @devanathan-vaithiyanathan in https://github.com/dotnet/maui/pull/34674 - [Windows] Fix the control overlap issue in the AppThemeFeatureMatrix sample on candidate by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34697 - [iOS/Mac] Fix CI failure for label gradient background UI tests by @Shalini-Ashokan in https://github.com/dotnet/maui/pull/34732 - [Testing] Fixed UI test image failure in PR 34617 - [30/03/2026] Candidate - 1 by @TamilarasanSF4853 in https://github.com/dotnet/maui/pull/34670 - [Android] Fix CI failure for LifeCycleEventsFireWhenNavigatingTopTabs device test by @praveenkumarkarunanithi in https://github.com/dotnet/maui/pull/34734 - [iOS] Fix Issue23377ItemSpacing test failure on candidate branch by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34750 - [Windows] Fix FlexLayoutCycleException test failure on candidate branch by @Vignesh-SF3580 in https://github.com/dotnet/maui/pull/34756 - [Testing][Windows] Fix SearchBar device test failure in candidate branch by @Tamilarasan-Paranthaman in https://github.com/dotnet/maui/pull/34777 - [Testing] Fixed test failure in PR 34617 - [30/03/2026] Candidate by @TamilarasanSF4853 in https://github.com/dotnet/maui/pull/34760 </details> <details> <summary>🏠 Housekeeping (1)</summary> - [Housekeeping] Refactor iOS large titles sample by @kubaflo in https://github.com/dotnet/maui/pull/33084 </details> <details> <summary>📦 Other (7)</summary> - [iOS 26] Fix Issue20706.ChangeIncrementValue test failure regression by @SyedAbdulAzeemSF4852 in https://github.com/dotnet/maui/pull/34773 - code revert and test update in https://github.com/dotnet/maui/commit/c4d4f3f - fix update. in https://github.com/dotnet/maui/commit/71af14d - Fix for CV1 and test name updates. in https://github.com/dotnet/maui/commit/9235fd5 - Update CollectionViewTests.iOS.cs in https://github.com/dotnet/maui/commit/62eb7f5 - fix moved to common file. in https://github.com/dotnet/maui/commit/29911a8 - Revert accidental fix commits from inflight/candidate in https://github.com/dotnet/maui/commit/8a1c06b </details> <details> <summary>📝 Issue References</summary> Fixes #6972, Fixes #8422, Fixes #10107, Fixes #10509, Fixes #11113, Fixes #11677, Fixes #11808, Fixes #11812, Fixes #12131, Fixes #12324, Fixes #14566, Fixes #15057, Fixes #15280, Fixes #15559, Fixes #16522, Fixes #17127, Fixes #17323, Fixes #17550, Fixes #17664, Fixes #17864, Fixes #18367, Fixes #18481, Fixes #18669, Fixes #18679, Fixes #18843, Fixes #18933, Fixes #19074, Fixes #19219, Fixes #19331, Fixes #19642, Fixes #20383, Fixes #20392, Fixes #20596, Fixes #20682, Fixes #20855, Fixes #20922, Fixes #21037, Fixes #21240, Fixes #21646, Fixes #21700, Fixes #21791, Fixes #21828, Fixes #22060, Fixes #22565, Fixes #22887, Fixes #23030, Fixes #23832, Fixes #23903, Fixes #24241, Fixes #24252, Fixes #24511, Fixes #24603, Fixes #24866, Fixes #25010, Fixes #25081, Fixes #25093, Fixes #25728, Fixes #25920, Fixes #25921, Fixes #26158, Fixes #26633, Fixes #26864, Fixes #26975, Fixes #27143, Fixes #27250, Fixes #27302, Fixes #27427, Fixes #27646, Fixes #27846, Fixes #28078, Fixes #28101, Fixes #28147, Fixes #28421, Fixes #28722, Fixes #28824, Fixes #28901, Fixes #28961, Fixes #29191, Fixes #29192, Fixes #29415, Fixes #29428, Fixes #29484, Fixes #29547, Fixes #29645, Fixes #29704, Fixes #29729, Fixes #29764, Fixes #29812, Fixes #29930, Fixes #30004, Fixes #30066, Fixes #30097, Fixes #30181, Fixes #30273, Fixes #30290, Fixes #30605, Fixes #30782, Fixes #30888, Fixes #30979, Fixes #31109, Fixes #31121, Fixes #31140, Fixes #31145, Fixes #31387, Fixes #31551, Fixes #31966, Fixes #32017, Fixes #32243, Fixes #32266, Fixes #32316, Fixes #32406, Fixes #32416, Fixes #32578, Fixes #32791, Fixes #32807, Fixes #32983, Fixes #32989, Fixes #32995, Fixes #33119, Fixes #33131, Fixes #33258, Fixes #33291, Fixes #33293, Fixes #33304, Fixes #33375, Fixes #33415, Fixes #33417, Fixes #33420, Fixes #33424, Fixes #33493, Fixes #33547, Fixes #33577, Fixes #33601, Fixes #33604, Fixes #33614, Fixes #33635, Fixes #33648, Fixes #33650, Fixes #33672, Fixes #33706, Fixes #33769, Fixes #33772, Fixes #33904, Fixes #33909, Fixes #33947, Fixes #33954, Fixes #33964, Fixes #33969, Fixes #33972, Fixes #34021, Fixes #34073, Fixes #34114, Fixes #34119, Fixes #34122, Fixes #34165, Fixes #34210, Fixes #34211, Fixes #34246, Fixes #34257, Fixes #34336, Fixes #34343, Fixes #34419, Fixes #34464, Fixes #34480, Fixes #34591, Fixes #34635, Fixes #34636, Fixes #34661 </details> **Full Changelog**: https://github.com/dotnet/maui/compare/main...inflight/candidate
2 parents a38e0bb + ba59eaf commit 61d7d94

File tree

1,856 files changed

+30019
-1607
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,856 files changed

+30019
-1607
lines changed

.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
22
"dotnet.defaultSolution": "Microsoft.Maui-vscode.sln"
3-
}
3+
}

eng/pipelines/common/ui-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ parameters:
2424
- 'Cells,CheckBox,ContextActions,CustomRenderers,DatePicker,Dispatcher,DisplayAlert,DisplayPrompt,DragAndDrop'
2525
- 'CollectionView'
2626
- 'Entry'
27-
- 'Editor,Effects,FlyoutPage,Focus,Fonts,Frame,Gestures,GraphicsView'
27+
- 'Editor,Effects,Essentials,FlyoutPage,Focus,Fonts,Frame,Gestures,GraphicsView'
2828
- 'Image,ImageButton,IndicatorView,InputTransparent,IsEnabled,IsVisible'
2929
- 'Label'
3030
- 'Layout'

src/BlazorWebView/src/Maui/BlazorWebView.cs

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Threading.Tasks;
3+
using System.Runtime.Versioning;
34
using Microsoft.AspNetCore.Components.Web;
45
using Microsoft.Extensions.FileProviders;
56
using Microsoft.Maui;
@@ -10,8 +11,24 @@ namespace Microsoft.AspNetCore.Components.WebView.Maui
1011
/// <summary>
1112
/// A <see cref="View"/> that can render Blazor content.
1213
/// </summary>
14+
#if ANDROID
15+
[SupportedOSPlatform(AndroidSupportedOSPlatformVersion)]
16+
#elif IOS
17+
[SupportedOSPlatform(iOSSupportedOSPlatformVersion)]
18+
#elif MACCATALYST
19+
[SupportedOSPlatform(MacCatalystSupportedOSPlatformVersion)]
20+
#endif
1321
public partial class BlazorWebView : View, IBlazorWebView
1422
{
23+
// NOTE: keep these in *reasonably* in sync with:
24+
// * src\BlazorWebView\src\Maui\Microsoft.AspNetCore.Components.WebView.Maui.csproj
25+
// * src\Templates\src\templates\maui-blazor\MauiApp.1.csproj
26+
// * src\Templates\src\templates\maui-blazor-solution\MauiApp.1\MauiApp.1.csproj
27+
// * https://learn.microsoft.com/dotnet/maui/supported-platforms
28+
internal const string AndroidSupportedOSPlatformVersion = "android24.0";
29+
internal const string iOSSupportedOSPlatformVersion = "ios15.0";
30+
internal const string MacCatalystSupportedOSPlatformVersion = "maccatalyst15.0";
31+
1532
internal static string AppHostAddress { get; } = HostAddressHelper.GetAppHostAddress();
1633

1734
private readonly JSComponentConfigurationStore _jSComponents = new();
@@ -80,9 +97,11 @@ public string StartPath
8097

8198
/// <inheritdoc />
8299
#if ANDROID
83-
[System.Runtime.Versioning.SupportedOSPlatform("android23.0")]
100+
[System.Runtime.Versioning.SupportedOSPlatform(AndroidSupportedOSPlatformVersion)]
84101
#elif IOS
85-
[System.Runtime.Versioning.SupportedOSPlatform("ios11.0")]
102+
[System.Runtime.Versioning.SupportedOSPlatform(iOSSupportedOSPlatformVersion)]
103+
#elif MACCATALYST
104+
[System.Runtime.Versioning.SupportedOSPlatform(MacCatalystSupportedOSPlatformVersion)]
86105
#endif
87106
public virtual IFileProvider CreateFileProvider(string contentRootDir)
88107
{
@@ -97,7 +116,11 @@ public virtual IFileProvider CreateFileProvider(string contentRootDir)
97116
/// <returns>Returns a <see cref="Task"/> representing <c>true</c> if the <paramref name="workItem"/> was called, or <c>false</c> if it was not called because Blazor is not currently running.</returns>
98117
/// <exception cref="ArgumentNullException">Thrown if <paramref name="workItem"/> is <c>null</c>.</exception>
99118
#if ANDROID
100-
[System.Runtime.Versioning.SupportedOSPlatform("android23.0")]
119+
[System.Runtime.Versioning.SupportedOSPlatform(AndroidSupportedOSPlatformVersion)]
120+
#elif IOS
121+
[System.Runtime.Versioning.SupportedOSPlatform(iOSSupportedOSPlatformVersion)]
122+
#elif MACCATALYST
123+
[System.Runtime.Versioning.SupportedOSPlatform(MacCatalystSupportedOSPlatformVersion)]
101124
#endif
102125
public virtual async Task<bool> TryDispatchAsync(Action<IServiceProvider> workItem)
103126
{

src/BlazorWebView/src/Maui/BlazorWebViewHandler.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
namespace Microsoft.AspNetCore.Components.WebView.Maui
1010
{
1111
#if ANDROID
12-
[SupportedOSPlatform("android23.0")]
12+
[SupportedOSPlatform(BlazorWebView.AndroidSupportedOSPlatformVersion)]
13+
#elif IOS
14+
[SupportedOSPlatform(BlazorWebView.iOSSupportedOSPlatformVersion)]
15+
#elif MACCATALYST
16+
[SupportedOSPlatform(BlazorWebView.MacCatalystSupportedOSPlatformVersion)]
1317
#endif
1418
public partial class BlazorWebViewHandler
1519
{

src/BlazorWebView/src/Maui/Microsoft.AspNetCore.Components.WebView.Maui.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
<PackageTags>$(DefaultPackageTags);blazor;webview;aspnet</PackageTags>
2424
<PackageIconFullPath>$(MauiRootDirectory)Assets\aspnet-icon.png</PackageIconFullPath>
2525
<Description>Build .NET Multi-platform App UI (.NET MAUI) apps with Blazor web UI in the BlazorWebView control.</Description>
26+
<!-- NOTE: keep in sync with BlazorWebView.cs -->
27+
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">15.0</SupportedOSPlatformVersion>
28+
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">15.0</SupportedOSPlatformVersion>
29+
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">24.0</SupportedOSPlatformVersion>
2630
</PropertyGroup>
2731

2832
<Import Project="$(MauiSrcDirectory)MultiTargeting.targets" />

src/BlazorWebView/src/Maui/build/Microsoft.AspNetCore.Components.WebView.Maui.targets

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,18 @@
121121
</ItemGroup>
122122
</Target>
123123

124+
<!-- Include computed static web assets in the single-file bundle. Other static web assets
125+
are already included via the normal ResolvedFileToPublish flow. -->
126+
<Target Name="_IncludeComputedStaticWebAssetsInSingleFileBundle"
127+
AfterTargets="_ComputeFilesToBundle"
128+
BeforeTargets="PrepareForBundle"
129+
Condition="'$(PublishSingleFile)' == 'true'">
130+
131+
<ItemGroup>
132+
<_FilesToBundle Include="@(_PublishStaticWebAssetsPreserveNewest)" Condition="'%(_PublishStaticWebAssetsPreserveNewest.SourceType)' == 'Computed'">
133+
<RelativePath>%(_PublishStaticWebAssetsPreserveNewest.TargetPath)</RelativePath>
134+
</_FilesToBundle>
135+
</ItemGroup>
136+
</Target>
137+
124138
</Project>

src/BlazorWebView/src/SharedSource/BlazorWebViewServiceCollectionExtensions.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@ public static IWindowsFormsBlazorWebViewBuilder AddWindowsFormsBlazorWebView(thi
3030
public static IWpfBlazorWebViewBuilder AddWpfBlazorWebView(this IServiceCollection services)
3131
#elif WEBVIEW2_MAUI
3232
#if ANDROID
33-
[System.Runtime.Versioning.SupportedOSPlatform("android23.0")]
33+
[System.Runtime.Versioning.SupportedOSPlatform(BlazorWebView.AndroidSupportedOSPlatformVersion)]
3434
#elif IOS
35-
[System.Runtime.Versioning.SupportedOSPlatform("ios11.0")]
35+
[System.Runtime.Versioning.SupportedOSPlatform(BlazorWebView.iOSSupportedOSPlatformVersion)]
36+
#elif MACCATALYST
37+
[System.Runtime.Versioning.SupportedOSPlatform(BlazorWebView.MacCatalystSupportedOSPlatformVersion)]
3638
#endif
3739
public static IMauiBlazorWebViewBuilder AddMauiBlazorWebView(this IServiceCollection services)
3840
#else

src/Compatibility/Maps/src/Android/MapRenderer.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public class MapRenderer : Handlers.Compatibility.ViewRenderer<Map, MapView>, Go
4646
List<APolyline> _polylines;
4747
List<APolygon> _polygons;
4848
List<ACircle> _circles;
49+
List<MapElement> _trackedMapElements;
4950

5051
public MapRenderer(Context context) : base(context)
5152
{
@@ -581,6 +582,16 @@ void MapElementCollectionChanged(NotifyCollectionChangedEventArgs e)
581582
AddMapElements(e.NewItems.Cast<MapElement>());
582583
break;
583584
case NotifyCollectionChangedAction.Reset:
585+
// Clear MapElementId from tracked elements (not Element.MapElements,
586+
// which is already empty after ObservableCollection.Clear())
587+
if (_trackedMapElements != null)
588+
{
589+
foreach (var element in _trackedMapElements)
590+
element.MapElementId = null;
591+
592+
_trackedMapElements = null;
593+
}
594+
584595
if (_polylines != null)
585596
{
586597
for (int i = 0; i < _polylines.Count; i++)
@@ -612,8 +623,11 @@ void MapElementCollectionChanged(NotifyCollectionChangedEventArgs e)
612623

613624
void AddMapElements(IEnumerable<MapElement> mapElements)
614625
{
626+
_trackedMapElements ??= new List<MapElement>();
627+
615628
foreach (var element in mapElements)
616629
{
630+
_trackedMapElements.Add(element);
617631
element.PropertyChanged += MapElementPropertyChanged;
618632

619633
switch (element)

src/Compatibility/Maps/src/iOS/MapRenderer.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public class MapRenderer : Microsoft.Maui.Controls.Handlers.Compatibility.ViewRe
3131
bool _shouldUpdateRegion;
3232
object _lastTouchedView;
3333
bool _disposed;
34+
List<MapElement> _trackedMapElements;
3435

3536
#if __MOBILE__
3637
UITapGestureRecognizer _mapClickedGestureRecognizer;
@@ -528,6 +529,16 @@ void MapElementCollectionChanged(NotifyCollectionChangedEventArgs e)
528529
case NotifyCollectionChangedAction.Reset:
529530
var mkMapView = (MKMapView)Control;
530531

532+
// Clear MapElementId from tracked elements (not Element.MapElements,
533+
// which is already empty after ObservableCollection.Clear())
534+
if (_trackedMapElements != null)
535+
{
536+
foreach (var mapElement in _trackedMapElements)
537+
mapElement.MapElementId = null;
538+
539+
_trackedMapElements = null;
540+
}
541+
531542
if (mkMapView.Overlays != null)
532543
{
533544
var overlays = mkMapView.Overlays;
@@ -544,8 +555,11 @@ void MapElementCollectionChanged(NotifyCollectionChangedEventArgs e)
544555

545556
void AddMapElements(IEnumerable<MapElement> mapElements)
546557
{
558+
_trackedMapElements ??= new List<MapElement>();
559+
547560
foreach (var element in mapElements)
548561
{
562+
_trackedMapElements.Add(element);
549563
element.PropertyChanged += MapElementPropertyChanged;
550564

551565
IMKOverlay overlay = null;

src/Controls/samples/Controls.Sample/Pages/Others/LargeTitlesPageiOS.cs

Lines changed: 0 additions & 90 deletions
This file was deleted.

0 commit comments

Comments
 (0)