#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);
}
}
}
}
Результат в конструкторе: