例如定义, 亮色主题使用的是绿色,暗色主题使用红色。
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<SolidColorBrush x:Key="Foo" Color="Green" />
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<SolidColorBrush x:Key="Foo" Color="Red" />
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
前端:
<Border Background="{DynamicResource Foo}" />
后台:
Application.Current!.TryGetResource("Foo", Application.Current!.ActualThemeVariant, out var o);
var result = new SolidColorBrush(Color.Parse(o?.ToString() ?? "#FFF"));