我有一个带有格式化文本的标签,我想更改其字体样式(我的意思是字体)。
我尝试使用自定义标签渲染(就像对普通文本一样),但它没有得到反映。
我的疑问是我们是否可以更改格式化文本的字体(因为它对于标签的文本(非格式化文本)工作正常)。
这是我的 .xaml 文件代码
<Label x:Name = "invosTitle" Grid.Column = "0" Grid.Row = "0" Grid.ColumnSpan = "3" HorizontalOptions = "CenterAndExpand">
<Label.FormattedText>
<FormattedString>
<FormattedString.Spans>
<Span Text = "abcd" ForegroundColor = "White" ></Span>
<Span Text = " "></Span>
<Span Text = "efgh" ForegroundColor = "Gray"></Span>
</FormattedString.Spans>
</FormattedString>
</Label.FormattedText>
</Label>
CustomLabelRenderer 代码是
protected override void OnElementPropertyChanged (object sender , PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
var label = (TextView)Control;
Typeface font = Typeface.CreateFromAsset (Forms.Context.Assets, "Fonts/microsoftjhengheibold.otf");
label.Typeface = font;
label.SetTypeface (font, TypefaceStyle.Bold);
}
使用 FormattedString 元素时,您可以更改每个元素的字体Span
分别与FontFamily
属性。您不需要自定义标签渲染器来实现此目的。
<Span Text="abcd"
ForegroundColor="White"
FontFamily="Helvetica" />
这记录在Xamarin“使用字体” http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/fonts/文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)