我想在我的应用程序中创建一个solidbrush 资源,该资源将根据所选主题改变颜色。
有没有办法做到这一点?
好吧,我想通了。在 StandardStyles.xaml 中有一个部分
在这里,您可以为每个不同的主题添加相同的实体画笔元素。
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
<x:String x:Key="BackButtonGlyph"></x:String>
<x:String x:Key="BackButtonSnappedGlyph"></x:String>
<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="#CEE3F8"></SolidColorBrush>
<SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="#E0E0E0"></SolidColorBrush>
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBackgroundThemeBrush" Color="#CEE3F8"></SolidColorBrush>
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBorderThemeBrush" Color="#CEE3F8"></SolidColorBrush>
<SolidColorBrush x:Key="HeaderBrush" Color="#FF8AA1B8">
</SolidColorBrush>
</ResourceDictionary>
<ResourceDictionary x:Key="Light">
<SolidColorBrush x:Key="HeaderBrush" Color="#FFCEE3F8">
</SolidColorBrush>
</ResourceDictionary>
<ResourceDictionary x:Key="HighContrast">
<x:String x:Key="BackButtonGlyph"></x:String>
<x:String x:Key="BackButtonSnappedGlyph"></x:String>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
在这里,我添加了一个“Light”主题,并向其中 2 个主题添加了一个名为“HeaderBrush”的实心画笔。
要实现此画笔,只需将其作为资源添加到元素中。像这样...
<AppBar x:Name="BottomAppBar1" Padding="10,0,10,0" BorderBrush="Blue" BorderThickness="0 1 0 0" Background="{ThemeResource HeaderBrush}" AutomationProperties.Name="Bottom App Bar" Opened="BottomAppBar1_Opened" Closed="BottomAppBar1_Closed">
这里我将画笔设置为背景颜色,现在它会随着主题自动改变。