装饰&标签中的扩展文本

时间:2015-06-03 03:13:54

标签: c# xaml xamarin xamarin.forms

是否可以在Xamarin.Forms Label小部件中使用粗体和非粗体文本?是否有可能在Label内部有终结线?

<Label Text="Abc <b>def</b>"/>
<Label Text="Abc \ndef"/>

2 个答案:

答案 0 :(得分:2)

最好的方法是绑定FormattedText样式,如下所示:

<Label FormattedText="{Binding CustomFormattedText}" />

在模特中:

    public FormattedString CustomFormattedText
    {
        get
        {
            return new FormattedString
            {
                Spans = {
                    new Span { Text = Sum, FontAttributes=FontAttributes.Italic, FontSize="10" },
                    new Span { Text = Info, FontSize="10" } }
            };
        }
        set { }
    }

答案 1 :(得分:1)

查看the documentation中的FormattedString

您创建一个FormattedString对象,该对象由多个Span个对象组成,这些对象都有自己的字体,重量,颜色等。

示例:

var labelFormatted = new Label ();
var fs = new FormattedString ();
fs.Spans.Add (new Span { Text="Red, ", ForegroundColor = Color.Red, FontSize = 20, FontAttributes = FontAttributes.Italic) });
fs.Spans.Add (new Span { Text=" blue, ", ForegroundColor = Color.Blue, FontSize = 32) });
fs.Spans.Add (new Span { Text=" and green!", ForegroundColor = Color.Green, FontSize = 12) });
labelFormatted.FormattedText = fs;

关于新行,\n应该有用。另一种解决方法是这样做:

<Label>
<Label.Text>
This is my magical
unicorn text
</Label.Text>
</Label>