DynamicResource, чтобы изменить размер шрифта и цвет текста, а затем сохранить в App.Current.Ресурсы

#xaml #xamarin.forms

Вопрос:

Используйте это, чтобы изменить размер шрифта и сохранить его в App.Current.Ресурсы , работает, но не цвет шрифта

Приложение.xaml

 <Application.Resources>
    <x:Double x:Key="defaultFontSize">14</x:Double>
    <Color x:Key="defaultTextColor">#141000</Color>
    <Style x:Key="ALabel" TargetType="Label">
        <Setter Property="TextColor" Value="{DynamicResource defaultTextColor}" />
        <Setter Property="FontSize" Value="{DynamicResource defaultFontSize}" />
        <Setter Property="HorizontalOptions" Value="Start" />
        <Setter Property="VerticalOptions" Value="Center" />
        <Setter Property="Opacity" Value="0.8" />
    </Style>
</Application.Resources>
 

Главная страница.xaml

 <Label
        x:Name="Labeltest3"
        Padding="30,0,30,0"
        Style="{StaticResource ALabel}"
        Text="18" />
 

Главная страница.cs
Это работает для размера шрифта , Labeltest3.Текст равен 18, поэтому размер шрифта = 18

 private void Button_Clicked_2(object sender, EventArgs e)
    {
        int value = Convert.ToInt32(Labeltest3.Text);
        Preferences.Set("FontSize", value);
        App.Current.Resources["defaultFontSize"] = Preferences.Get("FontSize", 14);
    }
 

Это не работает для textColor , что я упускаю или делаю неправильно ?
Попробовал все виды вариаций с шестнадцатеричным кодом в метке.Сообщение, но безуспешно.
Не изменять цвет текста и не сохранять цвет текста

 private void Button_Clicked_3(object sender, EventArgs e)
    {
        int value = Convert.ToInt32(Labeltest3.Text);
        Preferences.Set("FontSize", value);
        App.Current.Resources["defaultFontSize"] = Preferences.Get("FontSize", 14);
        Preferences.Set("defaultTextColor", "#ffcc00");
        App.Current.Resources["defaultTextColor"] = Preferences.Get("TextColor", "#141000");
    }
 

Ответ №1:

Нашел, это работает. Изменил настройки этой строки.Установите(«defaultTextColor», «#ffcc00»);

 private void Button_Clicked_3(object sender, EventArgs e)
    {
        Preferences.Set("FontSize", 8);
       App.Current.Resources["defaultFontSize"] = Preferences.Get("FontSize", 14);

        Preferences.Set("TextColor", "#ffcc00");
        App.Current.Resources["defaultTextColor"] = Preferences.Get("TextColor", "#141000");
    }