当label's文本改变时,标签字体变回默认值

本文关键字:标签 字体 默认值 改变 label 文本 | 更新日期: 2023-09-27 17:51:20

我使用了自定义渲染器来设置字体。问题是当我更改标签的文本时,字体样式消失了。

提供的是我的自定义渲染器代码。谁能告诉我我哪里做错了?

[assembly: ExportRenderer (typeof (MyLabel), typeof (MyLabelRenderer))]
namespace FormsProj.Droid
{
public class MyLabelRenderer : LabelRenderer
{
    protected override void OnElementChanged (ElementChangedEventArgs<Label> e)
    {
        base.OnElementChanged (e);
        var label = (TextView)Control;
        Typeface font = Typeface.CreateFromAsset (Forms.Context.Assets, "Raleway-Regular.ttf");
        label.Typeface = font;
    }
}
}

Update # 1 这是我的代码共享项目使用系统;使用Xamarin.Forms;

namespace FormsProj
{
public class MyLabel:Label
 {
 }
}

代码我使用MyLabel

var Thankyoutxt = new MyLabel {
            XAlign = TextAlignment.Center,
            Text = "Thank You",
            VerticalOptions = LayoutOptions.CenterAndExpand,
            HorizontalOptions = LayoutOptions.Center,
            TextColor = Xamarin.Forms.Color.White,
            FontAttributes = FontAttributes.Bold,
            Style = Device.Styles.CaptionStyle,
            FontFamily = ColorandFont.FontName,
        };

当点击按钮时,我将改变文本,到那时字体会变回没有自定义字体…

提前感谢…:)

当label's文本改变时,标签字体变回默认值

你也可以尝试在渲染器中重置OnPropertyChangedEvent的属性。我有这个问题在过去,这已经解决了它。