Пользовательские шрифты C # не работают в Xamarin Forms (Android). Xamarin 4.8. Windows 10, VS19

#c# #android #xamarin #fonts

#c# #Android #xamarin #шрифты

Вопрос:

У меня возникла проблема с пользовательскими шрифтами Xamarin Forms 4.8.

Я следовал инструкциям до буквы, то есть:

-Загрузил мои файлы шрифтов (.ttf или .otf) в мой общий каталог и пометил их как встроенные ресурсы.

-Добавлен ExportFont за пределы моего пространства имен.

Когда я ссылаюсь на шрифт в любом месте, он просто создает стандартный шрифт. Вот фрагмент кода:

 using System;
using System.Collections.Generic;
using Xamarin.Forms;
using Newtonsoft.Json.Linq;
using System.IO;
using System.Reflection;

[assembly: ExportFont("Stencil.ttf")]
[assembly: ExportFont("GreatVibes.otf")]
[assembly: ExportFont("Lobster-Regular.ttf", Alias= "MyFont")]

namespace BAAaM
{
    public partial class MainPage : ContentPage
    {

        public MainPage()
        {

            Grid topgrid = new Grid();
            topgrid.Children.Add(new Label { Text = "Test, please work", FontSize = 30, FontFamily = "Lobster-Regular" }, 0, 1);
this.Content = topgrid;
}
}
}
  

Я экспериментировал с размещением шрифтов в моем каталоге Android в разделе активы, но это тоже не работает. Перезаписывает ли Xamarin все, что я делаю со стандартным шрифтом, как часть встроенных функций label? У меня нет проблем с изменением размера текста.

Спасибо,

M

Ответ №1:

У меня была эта проблема.

Мое решение: изменение структуры файла

ИЗ: Assets/Fonts/PoppinsBold.ttf

Кому: Fonts/PoppinsBold.ttf

Ответ №2:

Вы можете обратиться к этому официальному образцу, чтобы сначала проверить, работает ли он.

Затем я протестировал ваш общий код:

     public FontPageXaml ()
    {
        InitializeComponent ();
        Grid topgrid = new Grid();
        topgrid.Children.Add(new Label { Text = "Test, please work", FontSize = 30, FontFamily = "Lobster-Regular" }, 0, 1);
        this.Content = topgrid;
    }
  

И это работает:

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