Предварительный просмотр шрифтов в конструкторе в Xamarin.ФОРМЫ

#c# #android #xaml #xamarin #xamarin.forms

#c# #Android #xaml #xamarin #xamarin.forms

Вопрос:

Я создал Xamarin.Проект Forms и я ссылались на свой собственный шрифт, а затем добавили псевдоним в сборку следующим образом:

 [assembly: ExportFont("Samantha.ttf", Alias = "MyAwesomeCustomFont")]

  

Теперь … дело в том, что этот шрифт, на который я ссылался, НЕ отображается в конструкторе, вместо этого я все еще получаю шрифт по умолчанию, даже после ссылки на него:

 <Button WidthRequest="70" Text="Click me" FontFamily="MyAwesomeCustomFont"/>
  

введите описание изображения здесь

Теперь это расстраивает, потому что он работает, когда я его развертываю, и он показывает шрифт
, хотя я хочу, чтобы дизайнер точно иллюстрировал, что происходит, поэтому я хочу, чтобы пользовательский шрифт отображался в конструкторе… Возможно ли это?

Спасибо,

Комментарии:

1. Я протестировал базовую демонстрацию функции и столкнулся с той же проблемой. Пользовательский шрифт отлично работает при создании проекта. Но семейство шрифтов не используется в программе предварительного просмотра. Кажется, что программа предварительного просмотра не поддерживает пользовательский шрифт. Решение можно найти по соответствующей ссылке. developercommunity.visualstudio.com/content/problem/1200173/… VS предоставляет функцию горячей перезагрузки , которая поддерживает внесение изменений в код XAML, ознакомьтесь с руководством: docs.microsoft.com/en-us/visualstudio/xaml-tools /…

2. Да, я пробовал это раньше. Но я все еще делаю предварительный просмотр designer, но я согласен, что попробую завтра. (Этот пост все еще ищет ответы.)

3. Ждем ваших обновлений, и вы можете следить за сообщением.

4. Посмотрите на мое решение, приветствия.

Ответ №1:

Я решил свою собственную проблему. Я создал пользовательский рендерер, и он отображается в предварительном просмотре:

 [assembly: ExportRenderer(typeof(Xamarin.Forms.Button), typeof(CustomButtonRenderer))]
namespace Custombutton.Droid
{
    class CustomButtonRenderer : ButtonRenderer
    {
        public CustomButtonRenderer(Context context) : base(context)
        {

        }

        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Button> e)
        {
            base.OnElementChanged(e);
            if (Control != null)
            {
                Control.SetAllCaps(false);
                Typeface tf = Typeface.CreateFromAsset(Android.App.Application.Context.Assets, "NUNITO-BOLD.ttf");
                Control.SetTypeface(tf, TypefaceStyle.Bold);


            }
        }
    }
}
  

Результат в конструкторе:

введите описание изображения здесь