【发布时间】:2015-06-27 05:35:35
【问题描述】:
我使用自定义渲染器来设置字体。问题是当我更改标签的文本时,字体样式消失了。
提供的是我的自定义渲染器代码。谁能告诉我我做错了什么??
[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,
};
单击按钮我将更改文本,到那时字体会变回没有自定义字体..
提前谢谢.. :)
【问题讨论】:
-
您在哪里更改文本?我只看到更改字体的代码。
-
@JohnOdom 查文本代码就像 label.Text ="Edited"; 我认为问题在于渲染器..
-
我希望您将代码发布在您更改文本的位置。我已经知道如何更改文本:P。这可能是您调用渲染器的方式的问题。
-
@JohnOdom 对不起 :) 我只是解释说我只做了那一行..
-
“MyLabelRenderer”怎么样?你能展示一下你是如何使用它的吗?
标签: c# xamarin xamarin.forms