Xamarin表单:屏幕中间的标签不显示多行的全文内容(仅显示一行内容)

时间:2018-11-14 18:21:24

标签: xamarin.forms

如果按照下面的代码尝试放置在屏幕中间的Label控件,则只显示Label中的一行,即使使用VerticalOptions,标签中的其余文本也不会显示=“ FillAndExpand”

<!-- StackLayout -->
<BoxView Style="{StaticResource separator}"></BoxView>
  <StackLayout Style="{StaticResource layoutSpacingPrimary}" BackgroundColor="#EFEFF4" HorizontalOptions="FillAndExpand">
    <Label Text="Looking to update your name?" Style="{StaticResource labelTitleBold}" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"></Label>
    <StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
        <Label Text="If you need to update your name please contact us and we can help with this request" Style="{StaticResource labelTitle}" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"></Label>
    </StackLayout>
  </StackLayout>
  <BoxView Style="{StaticResource separator}"></BoxView>
<!-- StackLayout -->

当前用户界面显示如下,

enter image description here

在这里,我没有看到完整的测试报告“如果您需要更新姓名,请与我们联系,我们可以为您提供帮助”

如果我对控件上方和下方的最基本元素启用VerticalOptions =“ FillAndExpand”,则如以下代码所示。

<BoxView Style="{StaticResource separator}"></BoxView>
  <StackLayout Style="{StaticResource layoutSpacingPrimary}" BackgroundColor="#EFEFF4" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
    <Label Text="Looking to update your name?" Style="{StaticResource labelTitleBold}" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"></Label>
    <StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
        <Label Text="If you need to update your name please contact us and we can help with this request" Style="{StaticResource labelTitle}" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"></Label>
    </StackLayout>
  </StackLayout>
  <BoxView Style="{StaticResource separator}"></BoxView>

UI如下所示,

enter image description here

如何确保控件仅占用所需的空间并显示全部内容。请让我知道是否有人遇到过类似的问题。

1 个答案:

答案 0 :(得分:0)

docs中所述:

  

可以通过将Label.MaxLines属性设置为int值来指定Label显示的行数:

     
      
  • 当MaxLines为0时,Label尊重LineBreakMode属性的值,以使其仅显示一行(可能已被截断)或显示所有行以及所有文本。
  •   
  • MaxLines为1时,结果与将LineBreakMode属性设置为NoWrap,HeadTruncation,MiddleTruncation或TailTruncation相同。但是,如果适用的话,Label将在省略号的放置方面尊重LineBreakMode属性的值。
  •   
  • 当MaxLines大于1时,Label将最多显示指定的行数,同时在省略号的位置方面考虑LineBreakMode属性的值(如果适用)。但是,如果LineBreakMode属性设置为NoWrap,则将MaxLines属性设置为大于1的值无效。
  •   

IDK您的样式到底能做什么,但是像这样设置LineBreakModeMaxLines

<Label 
    Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. In facilisis nulla eu felis fringilla vulputate. Nullam porta eleifend lacinia. Donec at iaculis tellus."
    LineBreakMode="WordWrap"
    MaxLines="2" />

我想您应该将该部分的VerticalOptions="FillAndExpand"更改为VerticalOptions="StartAndExpand"

HIH