我使用自定义渲染器来设置字体..问题是当我更改标签的文本时,字体样式会消失。
提供我的自定义渲染器代码..谁能告诉我我做错了什么?
[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,
};
单击按钮我将更改文本,到那时字体将更改为没有自定义字体..
提前致谢.. :))
答案 0 :(得分:0)
您可能还想尝试在渲染器中重置OnPropertyChangedEvent上的属性。我过去遇到过这个问题,这已经解决了。