首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用StackLayout包装标签

使用StackLayout包装标签
EN

Stack Overflow用户
提问于 2015-10-16 02:18:21
回答 3查看 32.7K关注 0票数 26

我正在使用Xamarin并使用XAML创建我的视图,但我无法让这个标签以我想要的方式包装。如果标签到达屏幕的边缘,我希望它像这样包装……

现在它看起来是这样的。

下面是我的代码:

代码语言:javascript
复制
<StackLayout Orientation="Vertical" HorizontalOptions="StartAndExpand" BindingContext="{Binding CurrentProviderDetails}" Padding="20,20,20,20" >
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
<!--Certification Board-->
  <StackLayout Orientation="Horizontal" HorizontalOptions="StartAndExpand" Grid.Row="0" Grid.Column="0" >
    <Label Text="Certification Board: " FontSize="13" HorizontalOptions="Fill" VerticalOptions="CenterAndExpand" />
    <Label Text="{Binding Certification}" VerticalOptions="CenterAndExpand"  HorizontalOptions="Center" Font="17" LineBreakMode="WordWrap"/>
  </StackLayout>
 </Grid>
</StackLayout>

这不需要在网格中;这就是我现在正在尝试的方法。我唯一的要求是'Certification Board‘是一个标签,当它到达屏幕的末尾时,我必须传入一个换行的值。任何帮助都会很棒,谢谢!

EN

回答 3

Stack Overflow用户

发布于 2016-11-11 04:33:55

在你的标签中放一个LineBreakMode="NoWrap“标签。这样你就可以避免包裹了。

但是如果你没有足够的空间,这个词就会被删掉。

票数 25
EN

Stack Overflow用户

发布于 2017-03-30 05:58:32

您可以通过将水平对齐的StackLayout中包含的两个标签合并为一个标签并将LineBreakMode=设置为“WordWrap”来获得所需的外观。XAML有一个很棒的特性,称为StringFormat。您可以使用它将静态"Certification Board:“文本添加到”bound Certification“属性中。您的标签应如下所示:

代码语言:javascript
复制
<Label Text="{Binding Certification, StringFormat='Board Certification:{0:F0}'}" LineBreakMode="WordWrap"/>
票数 11
EN

Stack Overflow用户

发布于 2021-01-05 20:40:51

向网格中添加两列,并移除标签周围的堆栈布局,如下所示

代码语言:javascript
复制
<StackLayout Orientation="Vertical" HorizontalOptions="StartAndExpand" BindingContext="{Binding CurrentProviderDetails}" Padding="20,20,20,20" >
    <Grid>
           <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                 <ColumnDefinition Width="Auto" />
                 <ColumnDefinition Width="*" />
             </Grid.ColumnDefinitions>
             <!--Certification Board-->
             <Label Grid.Row="0" Grid.Column="0" Text="Certification Board: " FontSize="13" HorizontalOptions="FillAndExpand" />
             <Label Grid.Row="0" Grid.Column="1" Text="{Binding Certification}" HorizontalOptions="FillAndExpand" Font="17"/>
     </Grid>
</StackLayout>

您可以像下面这样添加更多行

代码语言:javascript
复制
<Label Grid.Row="1" Grid.Column="0" Text="Certification Name: " FontSize="13" HorizontalOptions="FillAndExpand" />
<Label Grid.Row="1" Grid.Column="1" Text="{Binding CertificationName}" HorizontalOptions="FillAndExpand" Font="17"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33155724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档