У меня все работает, только что обновил пакет NuGet Xamarin.Forms до версии 4.5.0.617 во всех проектах моего решения.
Ранее я обновлял пакет Xamarin.Forms NuGet до версия 4.5x только в общем проекте. Следовательно, эта ошибка возникла
System.TypeLoadException: 'Could not load type Xamarin.Forms.ExportFontAttribute'`
Теперь я обновил Xamarin.Forms NuGet во всех проектах (Android, iOS и UWP) в моем решении до версии 4.5x. Обратите внимание, что для использования внешних пользовательских шрифтов в качестве встроенного ресурса в Xamarin Forms требуется Xamarin.Forms версии 4.5x или выше . Для получения дополнительной информации обратитесь к этой ссылке
Теперь правильный способ сделать это:
Предположим, я хочу использовать Monotype Corsiva шрифт в моем проекте и использовать его в качестве встроенного ресурса.
Обновление Xamarin.Forms до версии 4.5.0.530 или новее во всех проектах в решении (Android, iOS, UWP и др. c.). Для этого в Solution Explorer , Щелкните правой кнопкой мыши Имя решения -> Управление пакетами NuGet для решения -> Обновите пакет Xamarin.Forms до 4.5x или позже -> Выберите все проекты и обновите.
Добавьте файл шрифта (.ttf) в общий проект.
Установить файл как Встроенный ресурс ( Щелкните правой кнопкой мыши Файл шрифта в Обозреватель решений -> Свойства -> Действие сборки: Установить как Встроенный ресурс ).
Добавить [assembly: ExportFont("FontFileName.ttf", Alias = "MyFont")]
перед любым пространством имен любого класса в вашем проекте. Нет необходимости добавлять полный путь к файлу шрифта. Было бы лучше, если бы вы добавили новый класс и добавили вышеупомянутый код перед запуском пространства имен. Так же, как:
[assembly: ExportFont("MonotypeCorsiva.ttf", Alias = "MyFont")]
namespace MyApplication.Extensions
{
public class ExportFont
{
// You can have an empty class
...
}
}
- Теперь используйте его на любой странице XAML, как
<Label Text="Hello" FontFamily="MonotypeCorsiva" FontSize="Medium" HorizontalOptions="CenterAndExpand" />