У меня есть несколько пользовательских шрифтов, определенных в ResourceDictionary
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Fonlow.VA.App">
<Application.Resources>
<ResourceDictionary>
<OnPlatform x:TypeArguments="x:String" x:Key="SuperFont">
<On Platform="Android" Value="Super.ttf#Super" />
<On Platform="UWP" Value="/Assets/Super.ttf#Super" />
<!--<On Platform="iOS" Value="OpenSans-Bold" />-->
</OnPlatform>
<OnPlatform x:TypeArguments="x:String" x:Key="NormalFont">
<On Platform="Android" Value="Normal.ttf#Normal" />
<On Platform="UWP" Value="/Assets/Normal.ttf#Normal" />
<!--<On Platform="iOS" Value="OpenSans-Bold" />-->
</OnPlatform>
</ResourceDictionary>
</Application.Resources>
И
<Label Text="{Binding CurrentOptotype.Text}" FontFamily="{StaticResource SuperFont}" FontSize="{Binding CurrentFontSize}" TextColor="Black" />
Пока все хорошо. Тем не менее, я бы переключил FontFamily во время выполнения через привязку ViewModel так же, как привязку для FontSize, поскольку CurrentFontSize является свойством в модели представления.
Я пытался:
FontFamily="{Binding CurrentFontFamily}"
И значение CurrentFontFamily может указывать на существующий системный шрифт, но я хочу указать на пользовательский шрифт, указывающий на то, что определено в ResourceDictionary.
Я тогда попробовал:
FontFamily="{StaticResource {Binding CurrentFontFamily}}"
И очевидно, что во время выполнения возникает такая синтаксическая ошибка. Мне просто интересно, есть ли в XAML возможность переключать пользовательский шрифт во время выполнения через MVVM View Model?