如何在FormattedString中添加新行

时间:2016-04-12 08:56:47

标签: xamarin

 public FormattedString FormattedDescription
 {
     get
     {
         return new FormattedString
         {
            Spans = 
            {
                new Span 
                { 
                    Text = RoleName, 
                    FontSize = 16, 
                    FontAttributes = FontAttributes.Bold 
                },
                new Span 
                { 
                    Text = "/ " + ProjectRoleID + "/ "+Part + "/ "+Gender + "/ " + AgeRange
                },
           }
        };
    }
    set 
    { 
    }  
}
  

在上面的代码中,我想在第一行显示RoleName,在第二行显示其他详细信息。

3 个答案:

答案 0 :(得分:6)

这是完全使用XAML的“清洁”解决方案。

  • 首先,将此名称空间添加到您的XAML中:xmlns:system="clr-namespace:System;assembly=netstandard"

这是系统名称空间,它包含所有系统类。

  • 第二,在您希望的跨度中调用XAML中的Environment.NewLine,如下所示:

    <Label.FormattedText> <FormattedString> <Span Text="First Text"/> <Span Text=" "/> <Span Text="Second Text"/> <Span Text="{x:Static system:Environment.NewLine}"/> <Span Text="Above is a new line"/> </FormattedString> </Label.FormattedText> 在这里,您有一种干净的方法来显示新行。

答案 1 :(得分:1)

您也可以使用XAML属性元素语法执行此操作:

 <Label>
    <Label.FormattedText>
        <FormattedString>
            <Span>
                <Span.Text>
Line 1
Line 2
                </Span.Text>
            </Span>
        </FormattedString>
    </Label.FormattedText>
</Label>

答案 2 :(得分:0)

有时候用这个会更好

     <StackLayout>
        <Label>
            <Label.FormattedText>
                <FormattedString.Spans>
                    <Span Text="First Text"/>   
                </FormattedString.Spans>
            </Label.FormattedText>
        </Label>
        <Label>
            <Label.FormattedText>
                <FormattedString.Spans>
                    <Span Text="Above is a new line"/>
                </FormattedString.Spans>
            </Label.FormattedText>
        </Label>
     </StackLayout>