首页 > 解决方案 > 如何在 xamarin 表单中的单个标签上使用不同的字体大小

问题描述

我想在这里实现这个特殊的结果在此处输入图像描述

我遇到了不同的结果,但不是很好。我尝试使用 split() 进行分离,然后设置字体大小以将它们重新组合在一起。这是一个漫长的过程,我想做得更好。请任何知道如何解决这个问题的人都应该帮助我。

标签: xamarinxamarin.forms

解决方案


您可以使用格式化字符串。

对于固定数量的文本块 Xaml

<Label>
   <Label.FormattedText>
      <FormattedString>
         <Span Text="{Binding chunk1}" TextColor="Green" FontSize="10"/>
         <Span Text="{Binding chunk2}" TextColor="Green" FontSize="15"/>
         <Span Text="{Binding chunk3}" TextColor="Red" FontSize="10"/>
      </FormattedString>
   </Label.FormattedText>
</Label>

如果您的文本块数不固定。

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

视图模型

public FormattedString TextChunks
{
   get
   {
      return new FormattedString
      {
         //You can add a loop here any many as the number of text chunks
         Spans = 
         {
            new Span { Text = "chunk1", TextColor=Color.Green, FontSize = 10 },
            new Span { Text = "chunk2", TextColor=Color.Red, FontSize = 15 },
            new Span { Text = "chunk3", TextColor=Color.Green, FontSize = 10},
            new Span { Text = "chunk4", TextColor=Color.Red , FontSize = 15},
            new Span { Text = "chunk5", TextColor=Color.Green, FontSize = 18},
         }
      }
   }
}

推荐阅读