Introducing the .NET 8 GA release of .NET MAUI
This release is compatible with all the latest versions:
- Android 14.0 (API 34)
- iOS 17.0
- MacCatalyst 17.0
- WinUI 1.3.
It is also supported with the latest development platforms and tools: Visual Studio 17.8 and Xcode 15.0+ for iOS/MacCatalyst.
.NET MAUI includes and extends the .NET platform SDKs for Android, iOS, iPadOS, macOS, Mac Catalyst, and tvOS.
Get Started
For development on Windows, install .NET 8 and the latest .NET MAUI workload from Visual Studio 17.8+.
For development on Windows or Mac, install the .NET MAUI extension in VS Code and install the latest workload from the standalone installer using the dotnet workload install maui
command.
Highlights in .NET 8
- Enhanced memory management and overall performance
- Elevated accuracy in Visual States, Triggers, and XAML Hot Reload
- Optimized keyboard user experience on both mobile and desktop, featuring the introduction of keyboard accelerators
- Advanced support for gesture recognizers, incorporating new PointerGestureRecognizer events and access to platform-specific event args for Pointer and Drag and Drop gestures
- Enhanced compatibility for "Unpackaged" Windows apps
- Update of SkiaSharp to a more recent version of Skia
See more of what's new in https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-8?view=net-maui-8.0
Breaking Changes
NuGet Package References
.NET MAUI Templates now include PackageReference
items for the Microsoft.Maui.Controls
and Microsoft.Maui.Controls.Compatibility
packages.
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
The workload $(MauiVersion)
is specified by default, but this can also be changed to allow for easier testing of upcoming Service Release previews, PR builds, or Nightly feed packages without requiring workload commands.
New validation for duplicate images
Following the update, you might encounter a message regarding duplicate files, particularly with image resources. This arises because, previously, we didn't actively check for duplicates, and the image selection was arbitrary. In RC 1, we implemented a check to ensure the absence of duplicates. It's crucial to review any globs, especially those encompassing images, and ensure that images are not inadvertently included multiple times. Instead, make the following update in your csproj file:
<ItemGroup>
<MauiImage Include="Resources\Images\*" />
<!-- This would trigger an alert: -->
<MauiImage Include="Resources\Images\myimage.svg" Color="Red" />
<!-- This, however, will not result in an error: -->
<MauiImage Update="Resources\Images\myimage.svg" Color="Red" />
</ItemGroup>
What's Changed since .NET 7
- [release/8.0.1xx] Update car image/size by @github-actions in #18577
- Revert "Ensure that viewport calculations for iOS ScrollView account … by @PureWeen in #18579
- Allow iOS Keyboard Scrolling to be turned off in Lifecycle Events by @tj-devel709 in #18266
- Setup legacy mappers by @PureWeen in #18087
- [Templates] Remove get-task-allow entitlement from Templates by @dustin-wojciechowski in #18272
- Ensure that viewport calculations for iOS ScrollView account for content insets by @hartez in #18277
- Ensure templates create a proper AppID by @jknaudt21 in #18322
- [Templates] Fix template typo by @jknaudt21 in #18166
- Support finding nearest TFM to collect assets from by @mattleibow in #18068
- Partially revert "[Windows] Update CollectionView changing ItemsLayout (#14532) by @emaf in #18356
- Make Android respect power saving/disabled animations by @hartez in #17287
- .NET 8 template tweaks by @rachelkang in #18379
- Fix project name substitution in Blazor template nav menu and "VS install" prompt by @Eilon in #18388
- Fix Device Info Test API 33 by @PureWeen in #18390
- [C] clear _targetObject by @StephaneDelcroix in #18398
- Fixed Android's Border background to use a Transparent bg if not othe… by @jstedfast in #17555
- Update Flyout when Shell.FlyoutContent changes by @spadapet in #17359
- [XamlC] fix generic array by @StephaneDelcroix in #17301
- Fix iOS/Win InputTransparent layouts and add several UI tests by @mattleibow in #17286
- Fix accent color missing in title bar by @Foda in #17528
- Remove obsolete MauiWinUIApplication properties by @PureWeen in #17667
- Override CA1822 for Android interface implementation in MauiScrollView by @jfversluis in #17691
- Don't run hide on tapped code if window is null by @PureWeen in #17758
- Make sure to not call new APIs on old iOS by @mattleibow in #17907
- Make Entitlements in Templates for MacCatalyst more consistent between debug and release configs. by @dustin-wojciechowski in #17833
- Update Blazor Hybrid template to match ASP.NET Core Blazor Web template by @Eilon in #17946
- [android] update AOT profile for .NET 8 GA by @jonathanpeppers in #18061
- [Windows] Fix wrong Layout from hidden CollectionView by @jsuarezruiz in #17659
- [ X] connect the right method to the event handler by @StephaneDelcroix in #18043
- [iOS] Keep textcolor on characterspacing by @StephaneDelcroix in #17926
- [WinUI] Fixes window blinking when resizing by @emaf in #18155
- [net8.0] Add permission for high-speed sensors by @mattleibow in #18180
- [ X] revert #5611 by @StephaneDelcroix in #17733
- [iOS] Fix downscaled images not occupying correct space by @jknaudt21 in #17120
- Rework the Label mappers for FormattedText by @mattleibow in #18105
- Add a test for #17776 "Calling SetBinding after setting a constant value crashes" by @StephaneDelcroix in #17796
- [net8.0] Add NuGet package information by @mattleibow in #18197
- [net8.0] Correctly expand rows/columns when grid padding by @github-actions in #18276
- [release/8.0.1xx-rc2.2] Allow iOS Keyboard Scrolling to be turned off in Lifecycle Events by @github-actions in #18308
- [release/8.0.1xx-rc2.2] Setup legacy mappers by @github-actions in #18309
- [release/8.0.1xx-rc2.2] Make sure to account for a null AppWindow by @github-actions in #18313
- [release/8.0.1xx-rc2.2] Limit star expansion when measuring/arranging at constrained sizes by @github-actions in #18314
- [release/8.0.1xx-rc2.2] [Templates] Remove get-task-allow entitlement from Templates by @github-actions in #18323
- [release/8.0.1xx-rc2.2] Ensure that viewport calculations for iOS ScrollView account for content insets by @github-actions in #18321
- [xaml] locate event handlers from base types by @jonathanpeppers in #17075
- Updated the RoundRectangle BorderTest to check all 4 corners by @jstedfast in #17172
- Fix CollectionView not displaying header or footers by @jknaudt21 in #16870
- Compatibility should depend on Controls by @mattleibow in #17226
- (Windows) Fix tabbar visibility test by @Foda in #17240
- [msbuild] fix NuGet Central Package Management (CPM) by @jonathanpeppers in #17235
- Copy Windows assets to the output folder for Unpackaged by @mattleibow in #17238
- Remove null forgiveness operator and fix NRE from PlatformView in disconnect by @PureWeen in #17248
- [iOS] Fix issues setting Shell TabBar appearance by @jsuarezruiz in #15748
- [android] improve ToolbarExtensions.UpdateIconColor performance by @jonathanpeppers in #17241
- [Windows] Fix collection default spacing by @Foda in #17261
- Use strong type for PointerGestureRecognizer Windows PlatformArgs by @tj-devel709 in #17277
- [android] improve performance of ActivityExtensions.GetWindowFrame by @jonathanpeppers in #17256
- [Android] Fix single taps by @hartez in #16561
- Copy Windows MauiAssets to the publish folder for Unpackaged by @mattleibow in #17329
- [Xaml] do not register srcinfo for xaml-defined values by @StephaneDelcroix in #17230
- Extract TFM string into a const by @mattleibow in #17336
- Enable requesting the full preview size on iOS drag shadow & iOS and Windows Samples by @tj-devel709 in #17282
- Wait for parent to get set before realizing titleview by @PureWeen in #17360
- Adjust tap tests so they can work on Windows/iOS by @hartez in #17325
- [C] Replace value with same specificity by @StephaneDelcroix in #17365
- [C] Port the specificity concept to Bindings by @StephaneDelcroix in #17215
- Revert changes to setting context and add tests by @PureWeen in #17348
- [Xaml] fix CollectionItems enumeration by @StephaneDelcroix in #17364
- Passing test for #16960 by @StephaneDelcroix in #17397
- Fix DragAndDropCleanupCode by @PureWeen in #17430
- fix failing test for 17222 by @StephaneDelcroix in #17450
- Null check everything in InvalidateMeasureIfContentSizeChanged by @hartez in #17472
- Clean up iOS DragAndDropDelegate by @jknaudt21 in #17495
- Fixed window not reacting to TitleBar wnd message by @Foda in #17041
- Changing value of Shell.NavBarIsVisible should change visibility of toolbar (ShellToolbar) by @spadapet in #17358
- Split out sharable testing for non-element thing by @mattleibow in #17387
- [Xaml] pass the logging helper to Template context by @StephaneDelcroix in #17507
- Cleanup SwipeView and Propagate BC until we can fix compat layout by @PureWeen in #17418
- Enable performance CAs for more Core classes by @hartez in #17524
- [C] Convert values on AppThemeBinding by @StephaneDelcroix in #17567
- Add the missing package to the Blazor template by @mattleibow in #17579
- [controls] improve "setter specificity" performance by @jonathanpeppers in #17527
- Recreate the Navigation Host If It's been Destroyed by @PureWeen in #17594
- [android] update AOT profile for .NET 8.0.100-rc.2.23468.1 by @jonathanpeppers in #17624
- try fix #17396 by @StephaneDelcroix in #17505
- [Xaml] Double cast for OnPlat in StaticResource by @StephaneDelcroix in #17545
- Remove Previous TitleView from Toolbar by @PureWeen in #17353
- Recreate Details Fragment, if its been destroyed by @PureWeen in #17604
- Remove reference to concrete native host app by @dansiegel in #16803
- [Windows] Fixes border content clipping by @emaf in #17310
- If NavigationRenderer is Disposed don't UpdateFrames by @PureWeen in #17544
- Enable .NET 7 to work in .NET 8 SDK projects by @mattleibow in #17409
- [ios] fix memory leak in Editor by @jonathanpeppers in #16348
- [ios] fix memory leak in Entry by @jonathanpeppers in #16349
- [Core] attribute SolidColorBrush for the XamlC processor by @StephaneDelcroix in #16370
- [ios] fix memory leaks in MauiDoneAccessoryView by @jonathanpeppers in #16380
- Resize internal content container when ScrollView content is resized by @hartez in #16385
- [iOS] Avoid CheckBox memory leak by @jsuarezruiz in #16376
- [ios] fix memory leak in RefreshView by @jonathanpeppers in #16384
- [C] fix SelectedIndex propagation for picker by @PureWeen in #16387
- [Windows] Fix Border corners clipping issue by @jsuarezruiz in #14403
- [iOS] Fix Editor placeholder issues by @jsuarezruiz in #15883
- [Essentials] Make PublisherName public on NET8 by @rmarinho in #16454
- Fix EntryCellRenderer to use FromHandler for text changes by @PureWeen in #16458
- Reinstate IContentView and ILayout methods by @hartez in #16411
- [net8.0] Make UpdateBackground public by @rmarinho in #16453
- [iOS/Catalyst] Fix issue setting ContentPage gradient background by @jsuarezruiz in #15832
- [Essentials] add WiFi permissions on Android 13+ by @janusw in #14718
- [iOS] Add updates for LineHeight, TextDecorations, CharacterSpacing by @cat0363 in #16223
- [Windows] fixing window glitches while moving or resizing by @salarcode in #14861
- Allow * rows/columns treated as Auto to expand during 2nd measure pass by @hartez in #16488
- Revert "[Windows] fixing window glitches while moving or resizing (#14861)" by @rmarinho in #16541
- [ios] fix memory leak in SwipeView by @jonathanpeppers in #16532
- [SourceGen] Support genric types from XML namespaces by @jonpryor in #16486
- [ios] fix memory leak in TimePicker by @jonathanpeppers in #16265
- Use same type converter for Brush as for Color to enable XAML completion by @etvorun in #16559
- Fix Graphics Font comparison method by @jsuarezruiz in #15985
- [WinUI] Implement PointerPressed and PointerReleased by @rachelkang in #16213
- [ X] Optimize OnPlatform element syntax by @StephaneDelcroix in #5611
- [ X] Support DynResources as AppThemeBinding values by @StephaneDelcroix in #16597
- Adds prompts when creating a new page. by @mausam-shrestha in #16331
- [ios] fix memory leak in GraphicsView by @jonathanpeppers in #16605
- Setting binding on Label doesn't set text to incoming binding by @PureWeen in #16410
- Use runtime check for setting WKWebView inspectable flag by @drasticactions in #16631
- Implement Additional PointerGestureRecognizer Platform Arguments by @tj-devel709 in #16426
- [C] fix Specificity for VSM by @StephaneDelcroix in #16404
- Prevent Android timer from adding multiple callbacks by @hartez in #16078
- [Android] Fix SwipeView not swiping using Label as direct content by @jsuarezruiz in #14824
- Locate MAUI View for PlatformView by @PureWeen in #16463
- [android] update AOT profile for .NET 8.0.100-rc.1.23404.2 by @jonathanpeppers in #16644
- [ios] fix memory leak in SwipeItem by @jonathanpeppers in #16614
- [ios/catalyst] fix memory leak in DatePicker by @jonathanpeppers in #16589
- Add swipe gesture for uitests by @sbanni in #16560
- Fix the case where silent was requested by @mattleibow in #16676
- Use the correct WASDK property by @mattleibow in #16683
- Re-land "[Windows] fixing window glitches while moving or resizing" by @mattleibow in #16637
- Update WebNavigationResult.cs doc comments by @Eilon in #16710
- [ios] fix memory leak in WindowOverlay by @jonathanpeppers in #16700
- Obsolete VisualElement.FocusChangeRequested event by @jfversluis in #16750
- [ios] fix memory leak in Picker by @jonathanpeppers in #16685
- [ X] avoid AmbiguousMatchException by @StephaneDelcroix in #15873
- Streamline SwipeView Children by @PureWeen in #16753
- Allow "duplicate" files to be processed by @mattleibow in #16534
- [iOS/Catalyst] Fix issue loading images from Stream by @jsuarezruiz in #16162
- MauiEmbedding extensions should use specified TApp type by @dansiegel in #16758
- Make ImageSourcePartExtensions public by @jsuarezruiz in #16633
- Revert "Internalize MessagingCenter (#12582)" by @mattleibow in #16798
- Import Keyboard Extension APIs by @drasticactions in #16572
- [windows] fix memory leak in ListView by @jonathanpeppers in #16762
- Add GetPosition method to DragStartingEventArgs, DragEventArgs, and DropEventArgs by @jsuarezruiz in
- [macOS] Don't force the RID to be x64-only by @mattleibow in #16678
- Make it more obvious how to use shell with sandbox by @BretJohnson in #16840
- [windows] Fix Picker PointerOver TextColor (#16751) by @molesmoke in #16752
- Add note about ClipsToBounds/IsClippedToBounds by @hartez in #16833
- [iOS] Fix ScrollTo method issues by @jsuarezruiz in #15984
- [Android] Fix issue setting CarouselView position on Ctor or Appearing by @jsuarezruiz in #16165
- [BuildTasks] Fix resolution for nested types by @pjcollins in #16841
- [windows] improve memory usage of CollectionView by @jonathanpeppers in #16838
- [ios] test MemoryAnalyzers package by @jonathanpeppers in #16346
- Revert "Make ImageSourcePartExtensions public" by @mattleibow in #16893
- Set Mapper/Handler ctor to protected on migration handlers by @PureWeen in #16882
- Fix support for VisualDiagnosticsOverlay/IWindowOverlay on Android Shell Apps by @drasticactions in #16138
- [WinUI] Update shadow mask as part of shadow properties by @emaf in #16895
- Improve the control over resource generation by @mattleibow in #16845
- Add property for tapping on page to close soft input keyboard by @PureWeen in #16530
- [windows] Fixed CarouselView items rendering by @mauroa in https:/...
- [ios] fix memory leak in Border by @jonathanpeppers in #15946
- [Windows/macOS] Implement menu key accelerators by @jsuarezruiz in #14740
- Connect event to internal handler by @StephaneDelcroix in #15881
- [Android] Fix issues setting Shell TabBar appearance. by @PureWeen in #15734
- Fix ".SFUI" magic font string on iOS/MacCatalyst by @Redth in #15990
- [android] improve performance of Entry.MaxLength by @jonathanpeppers in #15614
- Streamline ModalNavigation lifecycle events by @PureWeen in #15799
- Ensure "text boxes" preserve cursor location by @mattleibow in #15099
- Fix IsSpellCheckEnabled by @jknaudt21 in #15459
- Implement all permutations of InputTransparent and CascadeInputTransparent by @mattleibow in #14846
- Include headers/footers in EmptySource count so they show up when ItemsSource is null by @hartez in #15979
- Set the SafeAreaInset Property with updated value by @tj-devel709 in #15512
- Improve the customization of WebView on Android by @mattleibow in #16032
- [android] fix memory leak in Window by @jonathanpeppers in #16045
- Null check small refactoring by @Lehonti in #16086
- Revert "[Windows] Allow to refresh the RefreshView using the mouse (#14261)" by @rachelkang in #16128
- Add GotoAsync overload for single use query parameters by @PureWeen in #15585
- Add logic to set DefaultLabelPosition on the WinUI CommandBar by @Foda in #15835
- Android: fix dialog button colors in dark mode by @webwarrior-ws in #15091
- [iOS] Avoid to use CornerCurve in iOS < 13 by @jsuarezruiz in #16101
- [Windows] Fix Slider MinimumTrackColor (#16056) by @molesmoke in #16057
- Various fixes for Border on Android by @jstedfast in #15458
- Map all menu items through a single selector by @mattleibow in #16174
- [controls] fix memory leak with Grid Row/ColumnDefinitions by @jonathanpeppers in #16145
- Stop DispatcherTimer after Tick fires if IsRepeating is false by @hartez in #16173
- Compiled Bindings to Array by @StephaneDelcroix in #15944
- Make Add/Remove Logical public by @PureWeen in #16046
- Revert default for UseSafeAreaProperty to value from .NET 6 for iOS by @hartez in #16093
- Text needs to be set before other properties by @mattleibow in #16116
- Style specificity by @StephaneDelcroix in #13818
- Don't use loaded/unloaded on FlyoutPage by @PureWeen in #16241
- TextTransform set before Text by @mattleibow in #16248
- [Bug] Fix Grid cells not honoring MaxWidth by @jknaudt21 in #16215
- Fix default constructors for many control handlers by @agaluzzi in #16270
- Update mappers instead of replacing field values by @mattleibow in #13836
- Fix infinite recursion error in CommandMapper.Add() by @agaluzzi in #16264
- Fix issue with ListView not firing SelectedItemChanged by @PureWeen in #16275
- [Windows] Allow to customize the Shell FlyoutIcon by @jsuarezruiz in #14663
- [ios] fix memory leak in Editor by @jonathanpeppers in #16348
- [ios] fix memory leak in Entry by @jonathanpeppers in #16349
- attribute SolidColorBrush for the XamlC processor by @StephaneDelcroix in #16370
- [release/8.0.1xx-preview7] [C] fix SelectedIndex propagation for picker by @github-actions in #16412
- Fix broken button when adding PGR implicitly by @PureWeen in #15419
- [net8.0] Fix broken button when adding PGR implicitly by @github-actions in #15422
- Correct docs for Grid ColumnSpacing/RowSpacing by @hartez in #15425
- Modify ID Generator Starting Point of DataTemplate Class to Prevent ItemViewType Collision by @expensivecow in #15438
- Move Windows and iOS Frame measure and arrange to xplat layer by @jknaudt21 in #14987
- [net8.0] Update ModalNavigationManager.cs by @github-actions in #15485
- Update ModalNavigationManager.cs by @PureWeen in #15483
- Don't reset App.Current OnResume if it's already set by @PureWeen in #15496
- Clear window from ContextStub after it's closed by @PureWeen in #15495
- Fix incorrect calculation of expansion size when *s have different scalars by @hartez in #15532
- [iOS] Set AutoKeyboardManagerScroll's Tokens to null when disconnecting by @tj-devel709 in #15560
- Restore & obsolete Windows MauiWebView ctor by @jfversluis in #15541
- [Windows] Avoid unexpected characters from WebView EvaluateScript by @jsuarezruiz in #15471
- Fix typo on Resizetizer After.targets by @dellis1972 in #15630
- [ios] fix memory leak in Image by @jonathanpeppers in #15062
- [Android] Fix toolbar OverflowIcon color not getting properly set. by @widavies in #15612
- Fix sizing issues with CollectionView on Windows by @hartez in #15587
- Workaround WinUI bug with adding/removing flyouts by @PureWeen in #14985
- [iOS] Allow to remove the Image from Button by @jsuarezruiz in #15624
- FilePicker on Mac Catalyst does not always return the file picked by @MartyIX in #13814
- Hook up ScrollViewer event tracking in Windows CollectionView by @hartez in #15555
- [Windows] Fix issues setting Shell TabBar appearance by @PureWeen in #15690
- feat: adding IWindowCreator by @dansiegel in #14921
- [android] support more system font names by @jonathanpeppers in #15759
- [Windows] Implement ItemsUpdatingScrollMode on CollectionView by @jsuarezruiz in #15601
- Formalize virtual layout concepts and fix iOS memory leaks by @hartez in #15303
- [Android] Fix Button issue updating background brush type by @jsuarezruiz in #15725
- Add SwipeItems to LogicalChildren by @jsuarezruiz in #13864
- Skip the compatibility warning by @mattleibow in #15854
- [ios] fix memory leak in CollectionView cells by @jonathanpeppers in #15831
- Correctly identify headers/footers when using UngroupedItemsSource by @hartez in #15688
- Optimize iOS selection synchronization by @filipnavara in #14613
- Fixed removing items from the shell causing a crash by @Foda in #15098
- [essentials] ensure WebUtils.ParseQueryString captures fragment parameters by @rdavisau in #15662
- [Windows] Fix crash swapping MainPage by @jsuarezruiz in #14262
- Wait for switched item to load by @PureWeen in #15891
- [Revert] Correctly identify headers/footers when using UngroupedItems… by @rmarinho in #15886
- Use default SmallChange value for WinUI slider by @rachelkang in #14912
- Fix PointerGesture CommandParameter properties by @rachelkang in #15863
- Adding ContentInsets to iOS Keyboard Scrolling by @tj-devel709 in #14371
- Removing skip attribute from SearchBarHandlerTests.CancelButtonColorInitializeCorrectly on Windows by @MSLukeWest in #14852
- [controls] improve performance of {Binding} by @jonathanpeppers in #14830
- [Android] Fix gestures in Label Spans by @jsuarezruiz in #14410
- [Android] Fix Entry issues with Keyboard using IsPassword by @jsuarezruiz in #14382
- [core] use StringComparer for Dictionary/HashSet by @jonathanpeppers in #14900
- Investigations and fixes for the Foo by @mattleibow in #14910
- Clarify ISafeAreaView docs by @hartez in #14934
- [Windows] Fix CollectionView.RemainingItemsThresholdReached by @Foda in #14391
- Updated info around the Task return type by @pictos in #14937
- Update XamlParseExceptionConstraint.cs(removed unused method) by @Rustamxon in #14971
- [iOS] Fix Label Truncation on iOS with HorizontalOptions by @tj-devel709 in #14453
- [android] reduce interop calls in MauiDrawable by @jonathanpeppers in #14933
- [Android] Fix CollectionView EmptyView by @jsuarezruiz in #11763
- [android] improve layout performance of Label by @jonathanpeppers in #14980
- Fix Layout issues with the details page on Flyout by @PureWeen in #12909
- Remove view from previous containerview by @PureWeen in #14867
- Add the Platform* APIs for Graphics by @mattleibow in #14816
- Remove Controls Navigation Controller by @PureWeen in #14976
- [Android] Changes updating ImageButton Padding to avoid size issues by @jsuarezruiz in #14905
- Make layout honor MaxWidth and MaxHeight requests by @jknaudt21 in #15022
- [Android] Correctly notify ImageButton border changes by @jsuarezruiz in #14874
- Set Icon to null and back again, working around Android issue by @BretJohnson in #13267
- Adjust flex item position to account for reversal when laying out unconstrained by @hartez in #13936
- CollectionView - Recycle DataTemplates when using template selector by @Redth in #12011
- Handle Grid * expansion when size is larger than minimum, but less than sufficient to display full size by @hartez in #14902
- [iOS] Normalize the orientation from MediaPicker photos by @jsuarezruiz in #14568
- Adjust index path for cell reuseid in carouselview by @Redth in #15140
- Wait for root page to load before processing modal by @PureWeen in #15037
- [Android] Don't dispose connectivity listeners by @jonpryor in #15145
- Make CollectionView on iOS measure to content size by @hartez in #14951
- Remove incorrect call to DisconnectHandler by @PureWeen in #15036
- Account for padding when expanding * rows/columns to new sizes by @hartez in #15143
- [Android] Allow to use system fonts by @jsuarezruiz in #15010
- Tests and fixes to verify that spanned views are including spacing in measurements by @hartez in #15119
- Fix ContentView RTL by @PureWeen in #15114
- Enable MacCatalyst for the Apple Sign In Authenticator by @Redth in #15188
- [shell] [windows] fix NRE when clearing shell items by @jonathanpeppers in #15220
- Fixed Android's StreamImageSourceService.LoadDrawableAsync() by @jstedfast in #14109
- Use PrependToMapping method to replace Window MapTitle method by @mattleibow in #15041
- Implements Color.Equal() correctly by @jstedfast in #15218
- Fix Android WebAuth callback for system browser flows by @Redth in #15187
- [android] update AOT profile for .NET 8 Preview 5 by @jonathanpeppers in #15302
- Improved WebUtils.ParseQueryString() by @jstedfast in #15245
- Use [AppendTo|PrependTo|Replace]Mapping for Focus commands by @mattleibow in #15040
- Set Version for Windows by @mattleibow in #15238
- Fix issue with CollectionView ignoring margins for content by @hartez in #15246
- [release/8.0.1xx-preview5] Fix broken button when adding PGR implicitly by @github-actions in #15421
- [release/8.0.1xx-preview5] Update ModalNavigationManager.cs by @github-actions in #15486
- Don't update the top tabs frame inside the safe area changed by @PureWeen in #14330
- [iOS] Make sure to update the frame of the RefreshView content by @rmarinho in #14302
- Fix Switch Off Track Color - Fixes #10099 by @tj-devel709 in #10758
- Refactor keyboard focus code for .NET 8 by @rachelkang in #13824
- Add top safe area when top tabs are present by @PureWeen in #14328
- Fix incorrect caching of unconstrained measures by @hartez in #14373
- [xamlc] fix assembly=mscorlib namespaces in Release mode by @jonathanpeppers in #14301
- Removal of the AppAction icon extension on Android by @moljac in #14235
- [macOS] Display alert by Window by @jsuarezruiz in #14361
- [ios] fix memory leak in Button by @jonathanpeppers in #14280
- Hook up CarouselView Scrolled event on Windows by @jfversluis in #14405
- Propagate title property to catalyst window by @PureWeen in #14399
- Remove Deployment Manager workaround by @PureWeen in #14398
- Keyboard test fixes v2 by @PureWeen in #14397
- [iOS/Catalyst] Fix clipping issues with some views by @jsuarezruiz in #14362
- Remove typo in ResourceDictionary docs by @nalka0 in #14483
- Refactor the device tests to avoid duplicate tests by @mattleibow in #14466
- [android] reduce Java interop for ContentViewGroup and WrapperView by @jonathanpeppers in #14275
- Propagate Title to android and ios window by @PureWeen in #14413
- [xamlc] fix build error for System.Private.CoreLib by @jonathanpeppers in #14492
- FocusRequest is now a RetrievePlatformValueRequest by @mattleibow in #14475
- Updated Templates for Blazor apps for MacCatalyst by @dustin-wojciechowski in #14196
- Code generation now supports internal duplicate types by @mattleibow in #14171
- [Windows] Allow early use of DeviceDisplay.Current.MainDisplayInfo by @Foda in #14521
- [Android] Properly remove the Frame's border thickness by @PureWeen in #14551
- [iOS] Fix focus issues with DatePicker and TimePicker by @jsuarezruiz in #13321
- readme spelling correction by @faheys in #14556
- [controls] fix memory leak in CollectionView by @jonathanpeppers in #14329
- Add Controls.Compatibility to local cache by @mattleibow in #14567
- Strong name the build tasks for the IDE by @mattleibow in #14080
- Fix android border stroke to use dp vs px by @PureWeen in #14574
- [Android] Allow to update Entry Background (once established) by @jsuarezruiz in #12227
- [xaml] fix x:Array and x:Double in Release mode by @jonathanpeppers in #14546
- Add updated WKWebView Inspectable flag by @drasticactions in #14610
- [graphics] fix CA1307 and CA1309 for performance by @jonathanpeppers in #14627
- Make Benchmarks.Droid runnable as APK for perf testing by @LoopedBard3 in #14447
- Allow SearchBar to take full width on Android by @jfversluis in #13716
- Treat */Auto spans as resolvable finite measures rather than infinite by @hartez in #14648
- Fix InputTransparent for layouts by @PureWeen in #14650
- [controls] fix performance issue in {AppThemeBinding} by @jonathanpeppers in #14625
- [xamlc] enable for $(Configuration) names like ReleaseProd by @jonathanpeppers in #14638
- Add Xceed partners by @Eilon in #14571
- Fix issue using FillRule with Paths by @jsuarezruiz in #14493
- [Core] Fix Border margin issue by @jsuarezruiz in #14402
- Added ICommandMapper for extension methods by @mattleibow in #14545
- Improve some test methods by @mattleibow in #14753
- Call the correct Disconnect method from DisconnectHandler by @PureWeen in #14757
- Switch to AppWindowTitleBar From SetTitleBar by @PureWeen in #14517
- Update All (most) BindableProperty XML docs by @jfversluis in #14704
- Set menuItem show action back to Never by @PureWeen in #14623
- Centralize logic for handling logical children by @PureWeen in #14132
- Use Background as Fill, if Fill is null in Shapes by @jsuarezruiz in #14216
- [core] use ToUpperInvariant() / ToLowerInvariant() by @jonathanpeppers in #14773
- Create better helpers for attaching and fix Window by @PureWeen in #14772
- Don't measure text spans if type is HTML by @mattleibow in #14705
- Support reading fonts from files by @mattleibow in #14783
- Correctly re-apply font formatting to HTML text by @mattleibow in #14701
- Use new methods for checking colors by @PureWeen in #14809
- Transition away from implicit package references by @mattleibow in #14770
- Make sure to call InitializeViewHandler when creating a handler by @PureWeen in #14814
- [Android] Avoid OnDestroy lifecycle event firing twice by @jsuarezruiz in #14799
- Fix some sample XAML so the text wraps by @mattleibow in #14821
- Add some dummy images to the sandbox by @mattleibow in #14815
- Propagate Navigation Events through PageContainer by @PureWeen in #14523
- [Windows] Update CollectionView changing ItemsLayout by @jsuarezruiz in #14532
- [android] AOT profiles for .NET 8 Preview 4 by @jonathanpeppers in #14838
- [android] MauiTextView doesn't need ViewAttachedToWindow by @jonathanpeppers in #14833
- Enabling tolerance adjustment in iOS color verification tests by @MSLukeWest in #13945
- [windows] fix memory leak when CollectionView.ItemsSource changes by @jonathanpeppers in #13530
- [controls] fix memory leak in BindableLayout by @jonathanpeppers in #13550
- [controls] fix memory leaks in Page & navigation by @jonathanpeppers in #13833
- [controls] fix memory leak in Window by @jonathanpeppers in #13400
- [controls] fix cases a GC causes events to not fire by @jonathanpeppers in #13997
- [controls] fix memory leak in VisualElement.Clip by @jonathanpeppers in #13806
- [controls] fix memory leak in VisualElement.Background by @jonathanpeppers in #13656
- [ios] fix memory leak with Page + Layout by @jonathanpeppers in #14108
- Fix memory leak in VisualElement.Shadow by @jsuarezruiz in #13960
- Set a GroupName when creating new WinUI RadioButtons by @jstedfast in #13611
- [RadioButton] Fix Issue with BorderWidth, Incorrect spacing in Default Control Template. by @dustin-wojciechowski in #13407
- Fixed RadioButtonGallery TemplateFromStyle page. by @dustin-wojciechowski in #13756
- Bugfix for text not properly aligned with radioButton when in RTL for Android by @dustin-wojciechowski in #13610
- [MacOS/iOS] Fixed incorrect color of RadioButton in Dark Mode using Default Control Template. by @dustin-wojciechowski in #13215
- Fix for RadioButton.DefaultTemplate not drawing inner check glyph when selected on Android and WinUI by @dustin-wojciechowski in #13899
- Removed Duplicate code in RadioButton.Tizen by @dustin-wojciechowski in #13996
- Add legacy Grid method (and a better one) by @hartez in #13408
- Ensure that Grid is treating star rows/columns as Auto when unconstrained by @hartez in #13999
- Fix edge case with Grids, *s, and unconstrained layouts by @hartez in #14114
- Ensure that second-pass measures of Auto rows/columns are allowed to expand by @hartez in #14315
- Ensure an exact measure for the nested horizontal scrollview by @hartez in #13554
- [iOS] Don't apply mask to UIScrollView so the content doesn't get masked out by @rmarinho in #14096
- [iOS] Implement ScrollView Orientation by @rmarinho in #13657
- [Android] Fix bidirectional scrolling on Android by @rmarinho in #13623
- [release/8.0.1xx-preview3] Make sure that we have valid values for setting the ContentSize of the ScrollView on iOS by @github-actions in #14242
- [iOS] Scroll with the keyboard to not block entries and editors by @tj-devel709 in #13499
- Make KeyboardAutoManagerScroll Public by @tj-devel709 in #14103
- Do not scroll for UIAlertControllers by @tj-devel709 in #14100
- Show keyboard on Android entry/editor/searchbar focus by @PureWeen in #13908
- Implement Keyboard on SearchBarHandler by @jsuarezruiz in #9851
- Fix next keyboard into a ListView and TableView iOS by @tj-devel709 in #13838
- [Windows] Notify changes in CollectionView Layouts by @jsuarezruiz in #13137
- [iOS] Update CollectionView layout when reloading data by @rmarinho in #14218
- Fix ListProxy GC issues by @hartez in #13973
- Fix Android ListView header / footer gone (#12312) by @ooikengsiang in #13712
- Fix iOS ListView Footer Missing (#13560) by @ooikengsiang in #13744
- Correctly propagate BindingContext to Border StrokeShape by @jsuarezruiz in #13793
- [iOS] Fix Border Content clipping issues by @jsuarezruiz in #10964
- [Android] Fix Frame Renderer to use Wrapper View correctly by @PureWeen in #12218
- [Windows] Fix Button LineBreakMode property by @jsuarezruiz in #10759
- [Windows] Fix Button sizing issues using HorizontalOptions by @jsuarezruiz in #14005
- Use a layout for MauiButton on Windows which supports LineBreakMode by @hartez in #14036
- [Windows] Fix ClearButtonVisibility and VerticalTextAlignment issues with invisible Entry by @jsuarezruiz in #13769
- [Windows] Implement SearchBar CancelButtonColor on Windows by @jsuarezruiz in #13622
- [iOS] Fix SearchBar focus issues by @jsuarezruiz in #11698
- [Windows] Implement IsTextPredictionEnabled on Windows SearchBar by @jsuarezruiz in #13636
- Allow string property binding as Color source by @jsuarezruiz in #9814
- Fix e-mail URI escaping recipients by @Cheesebaron in #13392
- [Windows] Add helper method to get GetFirstChildOfType with null support. by @mandel-macaque in #13421
- Add MauiUIApplicationDelegate.PerformFetch by @jfversluis in #7982
- Essentials: fix share title on iOS by @dimonovdd in #13708
- Use the launcher to start the Windows camera by @mattleibow in #13220
- Document ContainsKey behavior by @hartez in #13658
- Cast to a less derived type on TabbedPageManager by @PureWeen in #13689
- [Android] Fix shadow clipping issue using SwipeView by @jsuarezruiz in #13616
- Preventing NullReferenceException on WebAuthenticatorIntermediateActi… by @ederbond in #12347
- Skip GradientBackgroundInitializesCorrectly on iOS by @PureWeen in #13767
- Change Windows WebView Cookies to CoreWebView2 by @jfversluis in #13518
- Disable caching when loading images from streams by @hartez in #13111
- Cache the dynamic AppTheme value in Controls (and not Essentials) by @jsuarezruiz in #11200
- Ensure WrapperView children become visible when it does by @hartez in #13894
- [Android & iOS] Use the correct colors by themes with Alerts on Android and iOS by @jsuarezruiz in #13318
- Fix Flyout and TitleView Offset Measurements by @PureWeen in #12480
- Move Android Initialize call to Mappers by @PureWeen in #13879
- Blank image when Source set to null or on image loading error by @hartez in #13614
- [C] Properly set SelectedItem and Index by @StephaneDelcroix in #13740
- Fix issue updating the Path Data by @jsuarezruiz in #13816
- Make Android sizing of ShapeViews consistent with iOS and Windows by @hartez in #6206
- Fix syncing modal stack when the window is created/recreated by @PureWeen in #13025
- [macOS/iOS] Fix RequestedThemeChanged event by @jsuarezruiz in #11199
- Reinstate WebView cookie functionality for Android & iOS by @jfversluis in #13736
- [Windows] Fix Picker alignment issues by @jsuarezruiz in #13516
- Fix TableSection TextColor null ref exp (#14027) by @ooikengsiang in #14055
- [Android] Fix clipped text in SwipeItem under some DPIs by @jsuarezruiz in #11931
- [Android] Avoid to clip the SwipeView to the outline if the SwipeView or the Content has shadow by @jsuarezruiz in #14024
- Avoid crash using BoxView visibility (avoid unnecessary parent) by @jsuarezruiz in #11439
- Invalidate shapes changing any property inside the brushes (Fill, Stroke) by @jsuarezruiz in #13905
- [Android] Fixed SwipeItems size dynamically changing the Content Margin by @jsuarezruiz i...
- Geolocation: Add #nullable for Essentials Geolocation code by @vividos in #13371
- Revert "Add shell pages via controller instead of handler (#13332)" by @PureWeen in #13465
- Source Generator Cancellation by @mgoertz-msft in #13433
- Implement IAsyncDisposable on MauiApp by @Eilon in #13424
- move BootstrapHelper to Maui Core by @chabiss in #13431
- Include border size in Frame's measurement by @Redth in #13419
- SensorSpeed: unify sensor intervals across all platforms by @janusw in #13372
- Add Shell.Title to default template by @jfversluis in #13521
- Handled x:ClassModifier attribute to set the visibility of rootType by @egvijayanand in #13531
- [iOS] Don't scroll more than the available scrollable space by @rmarinho in #13415
- Use the TextColor value to set the ClearButton color on the Entry by @jsuarezruiz in #13475
- Have Frame use MinimumHeight/Width for minimums instead of constraints - #13336 (https://github.com/hartez)
- Use and clear a local nuget cache - #13256 (https://github.com/mattleibow)
- Add implicit package reference for Compat - #13427 (https://github.com/Redth)
- [core] fix memory leaks in bindings - #13327 (https://github.com/jonathanpeppers)
- [Windows] Fix Shell FlyoutBackground property - #13132 (https://github.com/jsuarezruiz)
- [iOS/MacCatalyst] Fix Editor scrolling - #13234 (https://github.com/rmarinho)
- [Android] Fix crash adding items to CollectionView on navigating - #13385 (https://github.com/jsuarezruiz)
- Clarify test - #13363 (https://github.com/PureWeen)
- Ensure OnMeasure always calls SetMeasuredDimension in ShellPageContainer - #13153 (https://github.com/BioTurboNick)
- [Housekeeping] Added pending changes in Android AlertManager - #11989 (https://github.com/jsuarezruiz)
- [Windows] Fix crash using complex html content - #11409 (https://github.com/jsuarezruiz)
- Changes in project template to avoid BoxView mistake - #13348 (https://github.com/jsuarezruiz)
- [Windows] Fixed dupe items in ShellView - #13326 (https://github.com/Foda)
- [iOS] Fix sizing of button when using CharacterSpacing - #13250 (https://github.com/rmarinho)
- [macOS] Fix crash using Shell SearchHandler on Catalyst - #11926 (https://github.com/jsuarezruiz)
- Fix setting bottom tab icon title - #12889 (https://github.com/PureWeen)
- [Android] Don't lose the padding when background is set - #13301 (https://github.com/rmarinho)
- ItemContentControl - apply bindings once for ItemTemplate (Windows) - #10999 (https://github.com/espenrl)
- reduce duplicate IndexOf calls - #12599 (https://github.com/trivalik)
- [core] WeakEventManager.RemoveEventHandler() should clear subscriptions - #13333 (https://github.com/jonathanpeppers)
- [Windows] Fix crash on Windows WebView updating the Html Source more than once - #13222 (https://github.com/jsuarezruiz)
- [Resizetizer] Do not update images if they have not been updated. - #13224 (https://github.com/dellis1972)
- Obsolete some of the AutomationProperties - #13104 (https://github.com/jfversluis)
- [controls] one less WeakReference in TypedBinding - #13304 (https://github.com/jonathanpeppers)
- [controls] fix memory leak in Style and AttachedCollection - #13260 (https://github.com/jonathanpeppers)
- [Essentials] Geolocation foreground listening - #9572 (https://github.com/vividos)
- When measuring FlexLayout unconstrained, allow child to be desired size - #13216 (https://github.com/hartez)
- [Windows] Correctly set the Slider ThumbImageSource - #13194 (https://github.com/jsuarezruiz)
- Let the Grid skip * measurements during the first pass if they'll be overwritten later - #13255 (https://github.com/hartez)
- [Windows] Fix issue with caching the page that holds unfocused control - #13028 (https://github.com/rmarinho)
- feat: Added nullable annotations for IValueConverter. - #13173 (https://github.com/HavenDV)
- [core] WeakEventManager+Subscription needs IEquatable - #13232 (https://github.com/jonathanpeppers)
- Remove TargetIdiom - #13090 (https://github.com/jfversluis)
- [iOS/Catalyst] Fix Shell TitleView rendering issues on iOS 16 - #12834 (https://github.com/jsuarezruiz)
- [Android] Fix shadows size in clipped views - #11603 (https://github.com/jsuarezruiz)
- Fix shadow visibility on Windows - #10996 (https://github.com/espenrl)
- Don't refresh the filtered tests if the filter hasn't actually changed - #13236 (https://github.com/hartez)
- [Android] Fix wrong conversions between Graphics RectF and Android RectF - #13225 (https://github.com/jsuarezruiz)
- [Android] Avoid to update Shell Toolbar colors if already disposed the Tracker - #12539 (https://github.com/jsuarezruiz)
- [Android] Align dash effect between Border and Shapes - #12693 (https://github.com/jsuarezruiz)
- [iOS] Better Find Next Textfield Algo - #13174 (https://github.com/tj-devel709)
- [Android] Fix crash setting SelectedTabColor on TabbedPage - #12924 (https://github.com/jsuarezruiz)
- Wire up WebView2 to window life cycle - #13206 (https://github.com/PureWeen)
- Add more tests for Graphics - #13208 (https://github.com/mattleibow)
- Add NotNullWhen to IsAlive() - #13214 (https://github.com/PureWeen)
- Fix back button tap for older iOS APIs - #13204 (https://github.com/PureWeen)
- [Windows] Add convenience and nullable safe method. - #13205 (https://github.com/mandel-macaque)
- Close open cursors correctly - #13202 (https://github.com/mattleibow)
- Don't auto-close s/move-to-vs-feedback issues - #13209 (https://github.com/Eilon)
- Fix a couple life cycle scenarios on shell modals - #13177 (https://github.com/PureWeen)
- Add some capabilities! - #13171 (https://github.com/mattleibow)
- [listview] fixes for various null/empty DataTemplate - #13146 (https://github.com/jonathanpeppers)
- Remove Navigation workaround in tests - #13170 (https://github.com/PureWeen)
- [iOS] Fix issue using SVG in SwipeItem Icon - #12882 (https://github.com/jsuarezruiz)
- Make MAUI into 1 workload and lots of NuGets instead of a full workload - #11206 (https://github.com/mattleibow)
- [iOS] Simplify the code used...