【问题标题】:Xamarin Forms weird issue with label text wrap and marginXamarin Forms 带有标签文本换行和边距的奇怪问题
【发布时间】:2021-10-18 15:54:54
【问题描述】:

我在 Xamarin.Forms 中的标签上换行时遇到了一个奇怪的问题。正如您在下面的屏幕截图中所见,当我在标签上设置了边距或填充时,文本被截断。当没有填充/边距时,将显示整个内容。截断内容的实际文字为:

“Ryan,你可以在完成后“结束直播””。这个特定的字符长度不会被包装。如果我有较少的字符,它似乎显示正常,如果我有更多的字符,它显示正常。

这一切都在 Grid 布局内部,在 ListView 内部。这是创建蓝色框的相关 XAML。

<Grid Grid.Row="0" Margin="10,0" Padding="5" HorizontalOptions="Start" VerticalOptions="FillAndExpand">
      <BoxView BackgroundColor="DeepSkyBlue" CornerRadius="10" HorizontalOptions="FillAndExpand" />
      <Label Margin="10" LineBreakMode="WordWrap" HorizontalTextAlignment="End" Text="{Binding Message}" TextColor="White" FontSize="Small" VerticalTextAlignment="Center" VerticalOptions="FillAndExpand" />
</Grid>

【问题讨论】:

  • 你试过用框架代替网格吗?
  • 我用你的代码做了一个测试,它工作正常,也许你的绑定有问题,你可以检查绑定值是否正确。

标签: xaml xamarin.forms


【解决方案1】:

试试这个。我基本上在做和你一样的事情,只是感兴趣的是当你把它放在你的应用程序中时它是否会起作用。

<CollectionView>
    <CollectionView.ItemsSource>
        <x:Array Type="{x:Type x:String}">
            <x:String>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Magni ad reprehenderit eius dolorum, laborum consectetur.</x:String>
            <x:String>This is a test message. Seems like there may be an issue with word wrap.</x:String>
            <x:String>Ryan you can &quot;end stream&quot; whenever you are done.</x:String>
            <x:String>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Iste cumque officiis laboriosam suscipit a corporis soluta obcaecati distinctio delectus, possimus facilis asperiores, amet consequatur quam, deleniti iusto debitis nihil laudantium dicta at!</x:String>
        </x:Array>
    </CollectionView.ItemsSource>
    <CollectionView.ItemTemplate>
        <DataTemplate>
            <Grid Padding="5">
                <BoxView BackgroundColor="DeepSkyBlue" CornerRadius="10" />
                <Label
                    Margin="10"
                    FontSize="Title"
                    HorizontalTextAlignment="End"
                    LineBreakMode="WordWrap"
                    Text="{Binding .}"
                    TextColor="White"
                    VerticalTextAlignment="Center" />
            </Grid>
        </DataTemplate>
    </CollectionView.ItemTemplate>
</CollectionView>

这是我使用这段代码得到的结果:

【讨论】:

  • 很遗憾,这似乎无法解决问题。大多数文本都可以很好地换行,但如果下一行只有一两个词,它们就不会显示。
  • @ChrisKooken 很遗憾听到这个消息。
猜你喜欢
  • 1970-01-01
  • 2011-08-04
  • 2017-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-26
  • 1970-01-01
  • 2015-04-09
相关资源
最近更新 更多