Skip to content

Conversation

@github-actions
Copy link
Contributor

Backport of #32341 to release/10.0.1xx-sr1

/cc @PureWeen @copilot

Copilot AI and others added 12 commits November 21, 2025 13:14
- Added CreateTitleViewContainer helper method to reduce code duplication
- Improved iOS 26+ detection with proper fallback when navigation bar frame unavailable
- Set frame origin to (0,0) instead of preserving potentially uninitialized X/Y values
- Added comprehensive XML documentation explaining iOS 26 workaround
- Added test case and UI test for Issue32287

This implementation addresses the critical issues identified in PR #32337 review:
- Eliminates silent failure by providing fallback to standard constructor
- Clarifies frame positioning logic with explicit (0,0) origin
- Reduces code duplication through helper method
- Adds proper documentation for maintainability

Co-authored-by: PureWeen <[email protected]>
Extended the iOS 26+ TitleView fix to NavigationPage in addition to Shell:

1. Added CreateTitleViewContainer helper method to centralize container creation
2. Added Container constructor overload accepting navigation bar frame for iOS 26+
3. Refactored Container initialization to use InitializeContainer method
4. Updated ToolbarHeight to use actual navigation bar height when available
5. Eliminated hardcoded 44pt height assumption for iOS 26+

This ensures both Shell and NavigationPage TitleView implementations handle iOS 26 layout changes consistently, preventing TitleView from covering page content.

Co-authored-by: PureWeen <[email protected]>
Extended the Issue32287 test based on review feedback:

1. Added rotation test to verify TitleView behavior in landscape mode
2. Added dynamic font size change tests to verify container tracks nav bar changes
3. Added buttons to increase/decrease TitleView font size
4. Added x:Name to TitleLabel for programmatic access
5. Created placeholder snapshot image for test validation
6. Wrapped rotation tests with TEST_FAILS_ON_WINDOWS && TEST_FAILS_ON_CATALYST

Tests now comprehensively verify that TitleView container correctly tracks
navigation bar frame changes without covering content in all scenarios.

Co-authored-by: PureWeen <[email protected]>
Created comprehensive NavigationPage tests mirroring the Shell tests:

1. Issue32287NavigationPage.xaml - NavigationPage with custom TitleView
2. Issue32287NavigationPage.xaml.cs - Code-behind with font size controls
3. Issue32287NavigationPage.cs - UI tests matching Shell test scenarios:
   - Basic test verifying TitleView doesn't cover content
   - Dynamic content size change test
   - Landscape rotation test (iOS/Android only)
4. Created placeholder snapshot image for visual validation

Tests verify that the NavigationPage Container fix handles iOS 26+ layout
changes consistently with Shell, preventing TitleView from covering content.

Co-authored-by: PureWeen <[email protected]>
Fixed XAML parsing error and addressed PR review feedback:

1. Changed Issue32287NavigationPage from NavigationPage to ContentPage
   - NavigationPage cannot have content directly set in XAML
   - NavigationPage.TitleView is an attached property set on ContentPage
   - Updated base class from NavigationPage to ContentPage

2. Added explanatory comments for platform-specific conditionals
   - Documented that rotation tests only work on iOS/Android
   - Explained SetOrientationLandscape/Portrait not supported on Windows/Catalyst
   - Applied to both Issue32287 and Issue32287NavigationPage test files

Fixes XAML error: "Cannot set the content of NavigationPage as it doesn't
have a ContentPropertyAttribute"

Co-authored-by: PureWeen <[email protected]>
…7NavigationPageCustomTitleViewDoesNotCoverContent.png
Deleted all Issue32287 test files as requested:
- Issue32287.xaml and Issue32287.xaml.cs (Shell tests)
- Issue32287NavigationPage.xaml and Issue32287NavigationPage.xaml.cs (NavigationPage tests)
- Issue32287.cs and Issue32287NavigationPage.cs (UI test implementations)

The PR now contains only the iOS 26 TitleView fix implementation without test coverage.

Co-authored-by: PureWeen <[email protected]>
@PureWeen
Copy link
Member

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@PureWeen PureWeen merged commit 3218849 into release/10.0.1xx-sr1 Nov 21, 2025
5 of 7 checks passed
@PureWeen PureWeen deleted the backport/pr-32341-to-release/10.0.1xx-sr1 branch November 21, 2025 14:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants