Xamarin.Forms 用户界面——控件——Text——Label

来源:互联网 发布:知荣制衣 联系方式 编辑:程序博客网 时间:2024/04/30 03:51

标签

PDF用于离线使用
  • 下载PDF
示例代码:
  • 文本
相关API:
  • 标签API

让我们知道你对此的感受

在Xamarin.Forms中显示文字

Label视图用于显示单行和多行的文本。标签可以有自定义字体(系列,大小和选项)和彩色文本。本文包含以下主题:

  • 截断和包裹 - 截断和包装选项,用于处理文本不能适合一行的情况。
  • 字体 - 字体选项。
  • 彩色 - 标签文字颜色选项。
  • 格式化文本 - 用于以多种格式/样式内联显示文本的选项。

样式标签

以下部分介绍Label了每个实例的手动设置属性。请注意,属性集可以分组为一种始终应用于一个或多个视图的样式。这可以增加代码的可读性,并使设计更改更容易实现。有关详细信息,请参阅样式。

截断和包裹

可以设置标签来处理由LineBreakMode属性公开的几种方式之一不能适合一行的文本。LineBreakMode列举了以下选项:

  • HeadTruncation - 截断文本的头部,显示结束。
  • CharacterWrap - 将文本转换为字符边界的新行。
  • MiddleTruncation - 显示文本的开头和结尾,中间用省略号替代。
  • NoWrap - 不包装文本,只显示一个文本可以适合一行。
  • 尾部截断 - 显示文本的开头,截断结尾。
  • WordWrap - 在文字边界包装文本。

字形

有关详细信息,请参阅使用字体。

颜色

Labels可以设置为通过bindable TextColor属性使用自定义文本颜色。

需要特别注意确保每个平台上的颜色可用。因为每个平台的文本和背景色都有不同的默认值,所以您需要小心选择每个平台上的默认值。

使用以下代码设置标签的文字颜色:

代码:

public partial class LabelPage : ContentPage{    public LabelPage ()    {        InitializeComponent ();        var layout = new StackLayout { Padding = new Thickness(5,10) };        this.Content = layout;        var label = new Label { Text="This is a label.", TextColor = Color.FromHex("#77d065"), FontSize = 20 };        layout.Children.Add(label);    }}

在XAML中:

<?xml version="1.0" encoding="UTF-8"?><ContentPage xmlns="http://xamarin.com/schemas/2014/forms"xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"x:Class="TextSample.LabelPage"Title="Label Demo">    <ContentPage.Content>        <StackLayout Padding="5,10">      <Label TextColor="#77d065" FontSize = "20" Text="This is a label." />    </StackLayout>  </ContentPage.Content></ContentPage>

格式文本

标签公开一个FormattedText属性,允许您在同一视图中呈现多种字体和颜色的文本。

FormattedText属性的类型的FormattedString。格式化的字符串由一个或多个Spans组成,每个s具有以下属性:

  • BackgroundColor - 可用于设置背景颜色,例如实现荧光笔效果。
  • FontAttributes - 可以设置为粗体,斜体或两者。
  • FontFamily - 设置要使用的字体。
  • FontSize - 设置文本的大小。
  • ForegroundColor - 设置文本的颜色。
  • 文本 - 要显示的文本。

以下C#代码演示了一个标签,其中第一个字是粗体,最后一个字是红色:

public partial class LabelPage : ContentPage{    public LabelPage ()    {        InitializeComponent ();        var layout = new StackLayout { Padding = new Thickness(5,10) };        this.Content = layout;    var label = new Label { FontSize = 20 };    var s = new FormattedString ();    s.Spans.Add (new Span{ Text = "Red Bold", FontAttributes = FontAttributes.Bold });    s.Spans.Add (new Span{ Text = "Default" });    s.Spans.Add (new Span{ Text = "italic small", FontSize =  Device.GetNamedSize(NamedSize.Small, typeof(Label)), FontAttributes = FontAttributes.Italic});    label.FormattedText = s;        layout.Children.Add(label);    }}

在XAML中:

<?xml version="1.0" encoding="UTF-8"?><ContentPage xmlns="http://xamarin.com/schemas/2014/forms"xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"x:Class="TextSample.LabelPage"Title="Label Demo">    <ContentPage.Content>        <StackLayout Padding="5,10">      <Label FontSize=20>        <Label.FormattedText>          <FormattedString>            <Span Text="Red Bold" ForegroundColor="Red" FontAttributes="Bold" />            <Span Text="Default" />            <Span Text="italic small" FontAttributes="Italic" FontSize="Small" />          </FormattedString>        </Label.FormattedText>      </Label>    </StackLayout>  </ContentPage.Content></ContentPage>

阅读全文
0 0
原创粉丝点击