当标签的文本发生变化时,标签字体会更改为默认值

时间:2015-06-01 16:01:51

标签: c# xamarin xamarin.forms

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

提供我的自定义渲染器代码..谁能告诉我我做错了什么?

[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;
    }
}
}

更新#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,

        };

单击按钮我将更改文本,到那时字体将更改为没有自定义字体..

提前致谢.. :))

1 个答案:

答案 0 :(得分:0)

您可能还想尝试在渲染器中重置OnPropertyChangedEvent上的属性。我过去遇到过这个问题,这已经解决了。