.NET 11 RC 1: document control and handler updates - #3501
Conversation
Document TabbedPage badges, SwipeItem color APIs, and the FlyoutPage handler migration for iOS and Mac Catalyst. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
|
Learn Build status updates of commit a60b597: ✅ Validation status: passed
For more details, please refer to the build report. |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
A new platform behavior note is internally inconsistent and there’s a small grammar issue in updated migration guidance that should be corrected before merge.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review tier: Lite
Findings: 2
New issues introduced by this change (2)
| Severity | Finding |
|---|---|
docs/migration/custom-renderers.md — The paragraph explaining renderer registration has a couple grammar issues ("method" should be… |
|
docs/user-interface/pages/tabbedpage.md — The iOS/Mac Catalyst bullet is internally inconsistent: it says the system tab bar can retain… |
What changed in this PR
Updates .NET MAUI documentation for .NET 11 RC 1 by adding new control guidance (TabbedPage badges, SwipeItem color properties) and documenting the iOS/Mac Catalyst FlyoutPage handler default + migration path, with a corresponding handler table correction.
Changes:
- Add .NET 11+ docs for
TabbedPagetab badges, including runtime update guidance and platform-specific behavior notes. - Add .NET 11+ docs for
SwipeItem.IconColor/SwipeItem.TextColor, including behavior differences vs .NET 10 and platform limitations. - Document the iOS/Mac Catalyst
FlyoutPagedefault handler change and compatibility renderer migration/registration guidance, and correct the .NET 11 handler table entry.
| File | Description |
|---|---|
| docs/user-interface/pages/tabbedpage.md | Adds .NET 11+ tab badge documentation and platform behavior notes. |
| docs/user-interface/pages/flyoutpage.md | Documents iOS/Mac Catalyst default handler change and migration guidance for custom PhoneFlyoutPageRenderer usage. |
| docs/user-interface/handlers/index.md | Fixes the .NET 11 handler table entry for FlyoutPage on iOS/Mac Catalyst. |
| docs/user-interface/controls/swipeview.md | Adds .NET 11+ SwipeItem icon/text color properties and platform behavior notes. |
| docs/migration/custom-renderers.md | Adds FlyoutPage renderer migration guidance and updates compatibility renderer registration details. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| The renderers are registered with the <xref:Microsoft.Maui.Hosting.HandlerMauiAppBuilderExtensions.ConfigureMauiHandlers%2A> and <xref:Microsoft.Maui.Hosting.MauiHandlersCollectionExtensions.AddHandler%2A> method. This first argument to the <xref:Microsoft.Maui.Hosting.MauiHandlersCollectionExtensions.AddHandler%2A> method is the cross-platform control type, with the second argument being its renderer type. | ||
|
|
||
| > [!IMPORTANT] | ||
| > Only renderers that derive from `FrameRenderer`, `ListViewRenderer`, `NavigationRenderer` on iOS, `ShellRenderer` on iOS and Android, `TabbedRenderer` on iOS, `TableViewRenderer`, and `VisualElementRenderer` can be registered with the <xref:Microsoft.Maui.Hosting.MauiHandlersCollectionExtensions.AddHandler%2A> method. | ||
| > Only renderers that derive from `FrameRenderer`, `ListViewRenderer`, `NavigationRenderer` on iOS, `PhoneFlyoutPageRenderer` on iOS and Mac Catalyst, `ShellRenderer` on iOS and Android, `TabbedRenderer` on iOS, `TableViewRenderer`, and `VisualElementRenderer` can be registered with the <xref:Microsoft.Maui.Hosting.MauiHandlersCollectionExtensions.AddHandler%2A> method. |
| - **Android** uses the Material Design badge APIs for top and bottom tabs. Numeric and text badges are supported. When bottom tabs use the **More** overflow item, badges aren't displayed on the **More** item or on pages in the overflow list. | ||
| - **iOS and Mac Catalyst** use `UITabBarItem.BadgeValue`, `BadgeColor`, and `SetBadgeTextAttributes`. On iOS 18 and Mac Catalyst 18 or later, the system tab bar can retain custom badge colors but display the system red background and white text instead. | ||
| - **Windows** uses the WinUI `InfoBadge` control. Numeric badge text displays as a count. Non-numeric text and an empty string display as a dot. When badge colors aren't set, the native theme defaults are used. |

Summary
TabbedPagebadges, runtime updates, and platform behavior.SwipeItem.IconColorandSwipeItem.TextColor, including the .NET 11 icon-color behavior change and platform limits.FlyoutViewHandlerdefault and compatibility renderer migration path.FlyoutPagehandler table entry.Migration guidance
Apps with custom
PhoneFlyoutPageRenderersubclasses must register the compatibility renderer explicitly while they migrate toFlyoutViewHandler. Existing content for .NET 10 and earlier is unchanged.This PR does not change the Shell badge files in #3359. It is independent of the other RC 1 documentation work.
Validation
markdownlint-cli2: 0 issues in 5 files.git diff --check: passed.net11.0API: no findings.Sources
Internal previews
Build report