2015-11-21 4 views
0

Я пытаюсь дать моему собственным EditText класса гарнитуру сНевозможно установить пользовательский шрифт

public class MyEditText : EditText 
{ 
    public MyEditText(Context context) : base(context) 
    { 
     InitializeView(context); 
    } 

    public MyEditText (Context context, IAttributeSet attrs) : base(context, attrs) 
    { 
     InitializeView(context); 
    } 

    public MyEditText (Context context, IAttributeSet attrs, int defStyle) : base(context,attrs,defStyle) 
    { 
     InitializeView(context); 
    } 

    private void InitializeView(Context context) 
    { 
     this.Typeface = Typeface.CreateFromAsset(Context.Assets, "Fonts/segoeui.ttf"); 
    } 
} 

Но все, что я получаю эта ошибка CS0176

Ошибки: Член «Android.Graphics.Typeface .CreateFromAsset (Android.Content.Res.AssetManager, string) 'невозможно получить с ссылкой на экземпляр; квалифицировать его с именем типа вместо

Я уже пытался Application.Context, но это не помогло. Почему это происходит?

+0

Это не имеет никакого значения. – Saphire

+0

Просто имейте в виду, что создание шрифта из актива - большая проблема с производительностью. Я предлагаю вам использовать одноэлементный класс, чтобы сохранить созданный шрифт в памяти, чтобы не открывать файл активов каждый раз, когда ваш вид «EditText» появляется в представлении. –

ответ

0

это путает свойство Typespace класса и класса Typeface в Android.Graphics

this.Typeface = Android.Graphics.Typeface.CreateFromAsset(Context.Assets, "Fonts/segoeui.ttf"); 
+0

Спасибо. В моем случае мне пришлось использовать 'global :: Android.Graphics.Typeface.CreateFromAsset'. – Saphire

+0

Мне было интересно, что .. Typeface = Typeface.CreateFromAsset (..) спасибо за это –

Смежные вопросы