Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows Labels inside frames not wrapping #13552

Closed
jknaudt21 opened this issue Feb 24, 2023 · 2 comments · Fixed by #14987
Closed

Windows Labels inside frames not wrapping #13552

jknaudt21 opened this issue Feb 24, 2023 · 2 comments · Fixed by #14987
Assignees
Labels
area-controls-frame Frame area-controls-label Label, Span area-controls-window Window area-layout StackLayout, GridLayout, ContentView, AbsoluteLayout, FlexLayout, ContentPresenter fixed-in-8.0.0-preview.6.8686 Look for this fix in 8.0.0-preview.6.8686! platform/windows 🪟 t/bug Something isn't working

Comments

@jknaudt21
Copy link
Contributor

jknaudt21 commented Feb 24, 2023

Description

In Windows, a Label inside a Frame will not wrap text but will resize the container as if it wrapped. The only LineBreakMode that's not truncation-related is NoWrap. iOS and Android are fine.

Something worth noting is that if the frame is already small enough such that the text is forced to wrap before the app launches (i.e setting a fixed WidthRequest), the initial wrapping is fine.

Tried using the Sandbox project from main and I still hit the bug.

Steps to Reproduce

  1. Create a Maui app
  2. Copy and paste the following code:
    <VerticalStackLayout VerticalOptions="Center" BackgroundColor="AliceBlue">
        <Frame Margin="10"
                   CornerRadius="8"
                   BackgroundColor="Grey" BorderColor="Red">
            <Label Margin="10" Text="Label with no LineBreakMode. Label with no LineBreakMode" />
        </Frame>
        <Label Margin="40,10" Text="Label with no LineBreakMode. Label with no LineBreakMode" />

        <Frame Margin="10"
                   CornerRadius="8"
                   BackgroundColor="Grey" BorderColor="Red">
            <Label LineBreakMode="WordWrap" Margin="10" Text="Label with LineBreakMode ='WordWrap'. Label with LineBreakMode ='WordWrap'" />
        </Frame>
        <Label LineBreakMode="WordWrap" Margin="40,10" Text="Label with LineBreakMode ='WordWrap'. Label with LineBreakMode ='WordWrap'" />

        <Frame Margin="10"
                   CornerRadius="8"
                   BackgroundColor="Grey" BorderColor="Red">
            <Label LineBreakMode="NoWrap" Margin="10" Text="Label with LineBreakMode ='NoWrap'. Label with LineBreakMode ='NoWrap'" />
        </Frame>
        <Label LineBreakMode="NoWrap" Margin="40,10" Text="Label with LineBreakMode ='NoWrap'. Label with LineBreakMode ='NoWrap'" />
    </VerticalStackLayout>  
  1. Build and debug using Windows or macOS.
  2. Resize the window to the point where text should wrap

Bug

Link to public reproduction project repository

(See code in repro steps)

Version with bug

7.0 (current)

Last version that worked well

Unknown/Other

Affected platforms

Windows

Affected platform versions

Windows 11

Did you find any workaround?

No response

Relevant log output

No response

@jknaudt21 jknaudt21 added t/bug Something isn't working platform/windows 🪟 labels Feb 24, 2023
@jknaudt21 jknaudt21 self-assigned this Feb 24, 2023
@ghost ghost added the legacy-area-controls Label, Button, CheckBox, Slider, Stepper, Switch, Picker, Entry, Editor label Feb 25, 2023
@rachelkang rachelkang added area-layout StackLayout, GridLayout, ContentView, AbsoluteLayout, FlexLayout, ContentPresenter area-controls-window Window labels Feb 28, 2023
@rachelkang rachelkang added this to the Backlog milestone Feb 28, 2023
@ghost
Copy link

ghost commented Feb 28, 2023

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

@jknaudt21
Copy link
Contributor Author

jknaudt21 commented Mar 1, 2023

Something worth noting: if the frame is already small enough such that the text has to wrap the when the application rendered, it displays correctly and breaks once again once text has to wrap again:
image.

This issue also seems to affect macOS, but the container does not resize

jknaudt21 added a commit that referenced this issue May 8, 2023
PureWeen pushed a commit that referenced this issue Jun 5, 2023
* Fix Windows frame not resizing with screen

Fixes #13552

* Make iOS Frame renderer us shared implementation

Moving some frame border calculations to the xplat layer with more shared code

* Add test

* Auto-format source code

* Remove padding update

Windows was double counting padding

* Fix test for other platforms

* Auto-format source code

* Fix typo

* Add padding test

---------

Co-authored-by: GitHub Actions Autoformatter <autoformat@example.com>
@samhouts samhouts modified the milestones: Backlog, .NET 8 Jun 7, 2023
rmarinho added a commit that referenced this issue Jun 14, 2023
* Update Win2D (#15400)

Fixes #9104

* Fix broken button when adding PGR implicitly (#15419)

* Fix broken button when adding PGR implicitly

* - fix conditional

* Bump Xamarin.GooglePlayServices.Maps from 118.1.0.1 to 118.1.0.2 (#15409)

Bumps [Xamarin.GooglePlayServices.Maps](https://github.com/xamarin/GooglePlayServicesComponents) from 118.1.0.1 to 118.1.0.2.
- [Release notes](https://github.com/xamarin/GooglePlayServicesComponents/releases)
- [Commits](https://github.com/xamarin/GooglePlayServicesComponents/commits)

---
updated-dependencies:
- dependency-name: Xamarin.GooglePlayServices.Maps
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Correct docs for Grid ColumnSpacing/RowSpacing (#15425)

* Bump Xamarin.Firebase.AppIndexing from 120.0.0.11 to 120.0.0.12 (#15406)

Bumps [Xamarin.Firebase.AppIndexing](https://github.com/xamarin/GooglePlayServicesComponents) from 120.0.0.11 to 120.0.0.12.
- [Release notes](https://github.com/xamarin/GooglePlayServicesComponents/releases)
- [Commits](https://github.com/xamarin/GooglePlayServicesComponents/commits)

---
updated-dependencies:
- dependency-name: Xamarin.Firebase.AppIndexing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Modify generated ID starting point to prevent collision with ItemViewType (#15438)

* Move Windows and iOS Frame measure and arrange to xplat layer (#14987)

* Fix Windows frame not resizing with screen

Fixes #13552

* Make iOS Frame renderer us shared implementation

Moving some frame border calculations to the xplat layer with more shared code

* Add test

* Auto-format source code

* Remove padding update

Windows was double counting padding

* Fix test for other platforms

* Auto-format source code

* Fix typo

* Add padding test

---------

Co-authored-by: GitHub Actions Autoformatter <autoformat@example.com>

* Bump Microsoft.NET.Test.Sdk from 17.6.0 to 17.6.1 (#15408)

Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.6.0 to 17.6.1.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](microsoft/vstest@v17.6.0...v17.6.1)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Pin main branch to net7 (#15452)

* [uitests] Fix appium versions (#15453)

* Upload appium

* Pin all versions

* Use variables

* Prep better the script

* Update dependencies from https://github.com/dotnet/xharness build 20230529.1 (#15450)

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 8.0.0-prerelease.23272.1 -> To Version 8.0.0-prerelease.23279.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* [net8.0] Don't pin sdk on net8 branch

* Add the drag and drop gestures back to the appium ui tests for mac/ios targets

* Update ModalNavigationManager.cs (#15483)

* Don't reset App.Current OnResume if it's already set (#15496)

* First pass at adding developer layout docs (#15426)

* First pass at adding developer layout docs

* Update docs/design/layout.md

Co-authored-by: MartyIX <203266+MartyIX@users.noreply.github.com>

---------

Co-authored-by: MartyIX <203266+MartyIX@users.noreply.github.com>

* Clear window from ContextStub after it's closed (#15495)

* Remove legacy launch settings (#15511)

* Skip tests currently having issues on WinUI (#15527)

* Skip tests currently having issues

* Update AssertionExtensions.Windows.cs

* - Update skip notes

* - update notes

* - update test notes

* - update tests that have always been failing

* - update test notes

* - fix compile errors

* Fix incorrect calculation of expansion size when *s have different scalars (#15532)

Fixes #15494

* Change the tokens to null (#15560)

Co-authored-by: tj-devel709 <tjlambert@microsoft.com>

* Add all platforms if build args don't restrict to a single platform (#15561)

* Restore & obsolete Windows MauiWebView ctor (#15541)

* Restore & obsolete Windows MauiWebView ctor

* Reinstate functionality for obsoleted ctor

* Ignore additional tests for iOS (#15513)

* Bump Microsoft.NET.Test.Sdk from 17.6.1 to 17.6.2 (#15502)

Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.6.1 to 17.6.2.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](microsoft/vstest@v17.6.1...v17.6.2)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependencies from https://github.com/dotnet/xharness build 20230607.1 (#15581)

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 8.0.0-prerelease.23279.1 -> To Version 8.0.0-prerelease.23307.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Update Versions.props

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: E.Z. Hart <hartez@users.noreply.github.com>
Co-authored-by: Michael Cao <poppop208@gmail.com>
Co-authored-by: Juan Diego Herrera <juherrera@microsoft.com>
Co-authored-by: GitHub Actions Autoformatter <autoformat@example.com>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Scott Banning <scoban@microsoft.com>
Co-authored-by: MartyIX <203266+MartyIX@users.noreply.github.com>
Co-authored-by: scoban <sbanni@users.noreply.github.com>
Co-authored-by: TJ Lambert <50846373+tj-devel709@users.noreply.github.com>
Co-authored-by: tj-devel709 <tjlambert@microsoft.com>
Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>
@ghost ghost locked as resolved and limited conversation to collaborators Jul 8, 2023
@samhouts samhouts modified the milestones: .NET 8, .NET 8 Planning Jul 10, 2023
@samhouts samhouts added the fixed-in-8.0.0-preview.6.8686 Look for this fix in 8.0.0-preview.6.8686! label Jul 11, 2023
@Eilon Eilon removed the legacy-area-controls Label, Button, CheckBox, Slider, Stepper, Switch, Picker, Entry, Editor label May 10, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-controls-frame Frame area-controls-label Label, Span area-controls-window Window area-layout StackLayout, GridLayout, ContentView, AbsoluteLayout, FlexLayout, ContentPresenter fixed-in-8.0.0-preview.6.8686 Look for this fix in 8.0.0-preview.6.8686! platform/windows 🪟 t/bug Something isn't working
Projects
None yet
4 participants