使用Live Property Explorer我可以看到HamburgerMenu控件的背景颜色是DimGray或#FF2B2B2B,具体取决于Light / Dark主题选择,但这些颜色从哪里继承它们的值?
我想使用相同的颜色作为PageHeader背景颜色而不是CustomColor(模板中默认使用SteelBlue)。
在Custom.xaml资源字典中,如果我在“Light”资源字典中注释掉了针对PageHeader控件的样式,该样式几乎对标题的右侧部分有所需的效果,但在Hamburger标题上没有。
<!--<Style TargetType="controls:PageHeader">
<Setter Property="Background" Value="{ThemeResource CustomColorBrush}" />
<Setter Property="Foreground" Value="{ThemeResource ContrastColorBrush}" />
</Style>-->
答案 0 :(得分:1)
导航区域背景的颜色不是继承的,但在Template10中编码如此。该属性的名称为NavAreaBackground
,可以看到源代码中的定义here。
如果你想改变这种颜色,你可以选择类似
的样式<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<Style TargetType="controls:HamburgerMenu" x:Key="HamburgerMenuStyle">
<Setter Property="NavAreaBackground"
Value="#FFFFFF" />
</Style>
</ResourceDictionary>
<ResourceDictionary x:Key="Default">
<Style TargetType="controls:HamburgerMenu" x:Key="HamburgerMenuStyle">
<Setter Property="NavAreaBackground"
Value="#000000" />
</Style>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
然后使用Style="{ThemeResource HamburgerMenuStyle}"
引用HamburgerMenu中的样式。
对于钢蓝色,这个来自HamburgerMenu(definition of the header in the source)的HamburgerBackground
属性。你可以用我在上面演示的方式覆盖颜色。
对于您已经发布了如何应用颜色的代码的PageHeader也是如此。现在只使用您为HamburgerBackground
定义的相同颜色。
快速注意:如果其他样式属性也未在您的样式中定义,我曾经遇到过NavAreaBackground
未应用的错误。不确定是否仍然如此。