Не удается изменить шрифт

#xaml #xamarin.forms #fonts

#xaml #xamarin.forms #шрифты

Вопрос:

У меня есть следующий xaml, который включает в себя семейство шрифтов с засечками, которое отображается как без засечек

 <Label Text="{Binding Name}" FontFamily="serif" Style="{StaticResource largeLabel}" HorizontalOptions="FillAndExpand" />
  

На самом деле, что бы я ни добавлял, это, похоже, не имеет никакого эффекта. Я пробовал пользовательские шрифты, имена шрифтов, такие как arial, семейства шрифтов, такие как serif, и это никогда не меняется.
Я пробовал в Android и uwp на ПК

Спасибо за вашу помощь

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

1. «serif» не является допустимым семейством шрифтов. На каждой платформе есть свой набор шрифтов, которые вы можете выбрать — они не являются универсальными для разных платформ. Я предлагаю вам потратить время на чтение документов, прежде чем делать что-либо еще. learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface /…

Ответ №1:

На самом деле, что бы я ни добавлял, это, похоже, не имеет никакого эффекта. Я пробовал пользовательские шрифты, имена шрифтов, такие как arial, семейства шрифтов, такие как serif, и это никогда не меняется.

Как сказал Джейсон.Использование шрифта, отличного от встроенных шрифтов, требует некоторого специфичного для платформы кодирования.

 <Label Text="Hello Forms with XAML">
    <Label.FontFamily>
        <OnPlatform x:TypeArguments="x:String">
                <On Platform="iOS" Value="Lobster-Regular" />
                <On Platform="Android" Value="Lobster-Regular.ttf#Lobster-Regular" />
                <On Platform="UWP" Value="Assets/Fonts/Lobster-Regular.ttf#Lobster" />
        </OnPlatform>
    </Label.FontFamily>
</Label>
  

iOS

  • Добавьте файл шрифта с помощью действия сборки: BundleResource,
  • Обновите файл Info.plist (шрифты, предоставляемые ключом application или UIAppFonts), затем
  • Обращайтесь к нему по имени везде, где вы определяете шрифт в Xamarin.Формы!

Android

  • Добавьте файл шрифта в папку Assets в проекте приложения и задайте действие сборки: AndroidAsset.
  • В качестве имени шрифта в Xamarin используйте полный путь и имя шрифта, разделенные хэшем (#).Формы

UWP

  • Добавьте файл шрифта в папку /Assets/Fonts/ в проекте приложения и задайте действие сборки:Содержимое.
  • Используйте полный путь и имя файла шрифта, за которым следует хэш (#) и имя шрифта

Вот официальный документ.Используйте пользовательский шрифт

Ответ №2:

Я удалял каждый атрибут один за другим, пока не остался только следующий, и он начал работать:

 <Label Text="Test" FontFamily="serif" />
  

Я повторно добавил каждый атрибут один за другим, и он все еще работал, я изменил несколько других вещей, и он все еще работал.
Я понятия не имею, в чем проблема

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

1. Вы можете пометить его, тогда этот вопрос будет закрыт. Это может быть еще одной проблемой, вы можете создать новый вопрос с подробной информацией в stackoverflow. 🙂