如何解决如何在 xamarin 表单中的单个标签上使用不同的字体大小
我想在这里实现这个特殊的结果
我遇到过不同的结果,但不是很好。我尝试使用 split() 进行分离,然后设置字体大小,将它们重新组合在一起。这是一个漫长的过程,我想做得更好。 请任何知道如何解决这个问题的人都应该帮助我。
解决方法
您可以使用 FormattedString。
对于固定数量的文本块 xml
<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",FontSize = 10},new Span { Text = "chunk4",FontSize = 15},new Span { Text = "chunk5",FontSize = 18},}
}
}
}
,
如 Jason 所说,FormattedText
和 HTML
都有效。
对于 FormattedText
,您可以查看 MS 文档。 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/text/label#formatted-text
对于 HTML,在标签中显示 HTML 仅限于底层平台支持的 HTML 标签。在 XAML 中,由于额外转义 符号,HTML 字符串可能变得不可读。
我建议使用 HTML Label Plugin
。
NuGet 包:https://www.nuget.org/packages/Xam.Plugin.HtmlLabel
xml:
<htmlLabel:HtmlLabel x:Name="htmlLabel" />
代码hebind:
htmlLabel.Text = "<span style='color: green'><small>N52,</small></span><span style='color:green'><big>O3O.</big></span><span style='color:red'><small>60</small></span>";
截图:
不要忘记在 MainActivity 中添加以下代码。
HtmlLabelRenderer.Initialize();
更新:
string NO1 = "N52,";
string NO2 = "O3O.";
string NO3 = "60";
htmlLabel.Text = "<span style='color: green'><small>" + NO1 + "</small></span><span style='color:green'><big>" + NO2 + "</big></span><span style='color:red'><small>"+NO3+"</small></span>";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。