Xamarin-添加到黑暗/光明主题

时间:2019-07-31 01:58:35

标签: xamarin.forms

在我的App.xaml中,我有以下内容(仅作为示例):

    <Style Class="Banner" TargetType="Label">
        <Setter Property="TextColor" Value="#00ff00" />
        <Setter Property="BackgroundColor" Value="#0000ff" />
        <Setter Property="FontSize" Value="30" />
    </Style>

此方法适用于:

<Label StyleClass="Banner" Text="Hello" />

但是,如果我使用深色/浅色主题之一,则将忽略“横幅” StyleClass。我希望我创建的StyleClass可以添加到主题中。

我希望能够“增强”主题,这可能吗?

1 个答案:

答案 0 :(得分:0)

我已经尽力使它开始工作。在我的App.xaml中,我有...

<!-- Enhancements to the Dark theme -->
<ResourceDictionary x:Name="EnhancedDark">
    <Style Class="Banner" TargetType="Label">
        <Setter Property="TextColor" Value="#000000" />
        <Setter Property="BackgroundColor" Value="#ffffff" />
        <Setter Property="FontSize" Value="Large" />
    </Style>
    ...
</ResourceDictionary>

<!-- Enhancements to the Light theme -->
<ResourceDictionary x:Name="EnhancedLight">
    <Style Class="Banner" TargetType="Label">
        <Setter Property="TextColor" Value="#ffffff" />
        <Setter Property="BackgroundColor" Value="#000000" />
        <Setter Property="FontSize" Value="Large" />
    </Style>
    ...
</ResourceDictionary>

然后在我的app.cs中设置具有增强功能的Dark主题

   Resources.MergedDictionaries.Add(new DarkThemeResources());
   Resources.MergedDictionaries.Add(EnhancedDark); // Important 
   Resources.MergedDictionaries.Remove(EnhancedLight); // Important

对于光也是如此。现在,在我的代码中,我可以:

<Label StyleClass="Banner" ... />