1
比方說,我想改變標籤的字體。這意味着,我必須寫這樣的事情:如何將自定義渲染器添加到僅某些特定佈局?
[assembly: ExportRenderer(typeof(Label), typeof(LabelFontRenderer))]
namespace MyApp.Droid
{
public class LabelFontRenderer : LabelRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
var label = (TextView)Control; // for example
Typeface font = Typeface.CreateFromAsset(Forms.Context.Assets, "Roboto-Regular.ttf"); // font name specified here
label.Typeface = font;
}
}
}
然而,並稱到項目將使所有標籤渲染指定的字體。如果我只想製作一些特定的標籤,則會使用該字體進行渲染?
也許一個解決方案是從標籤繼承和渲染器添加到該繼承的類,從而它僅施加到該特定類的實例,並且因此它僅施加到指定的標籤。因此,我的問題由兩部分組成:(1)我描述了正確的方式,並且它會起作用,如果不正確,(2)什麼是正確的方式?
對不起,我很困惑。你是否說我提供的解決方案是正確的? – nicks
@NikaGamkrelidze不,你必須繼承Label類並使用它。我會更新我的答案,以便更清楚:) –
這就是我說的,實際上。也許我沒有正確表達自己。 – nicks