是否可以使用不同的颜色设置AutomationProperties.Name
值的样式?
我从我的应用程序中的黑暗主题中获取基本文本颜色。我有自定义背景颜色,这就是为什么我需要针对此属性的特定ForegroundColor
和TextColor
(Value="OtherUserAppBarButton"
)
<Style x:Key="LogoutAppBarButtonStyle" TargetType="ButtonBase"
BasedOn="{StaticResource AppBarButtonStyle}">
<Setter Property="AutomationProperties.AutomationId" Value="OtherUserAppBarButton"/>
<Setter Property="AutomationProperties.Name" Value="Other User"/>
<Setter Property="Content" Value=""/>
<Setter Property="Foreground" Value="#ffffffff" />
</Style>
有人有想法吗?
答案 0 :(得分:3)
要实现这一点,您需要修改基于按钮样式的AppBarButtonStyle
。您可以在项目内的Common\StandardStyles.xaml
中找到它。您可以直接修改此文件中的样式,也可以在App.xaml
内创建它的副本,如果您还需要未修改的样式。
您需要在样式ControlTemplate
中更改以下块:
<TextBlock
x:Name="TextLabel"
Text="{TemplateBinding AutomationProperties.Name}"
Foreground="{StaticResource AppBarItemForegroundThemeBrush}"
Margin="0,0,2,0"
FontSize="12"
TextAlignment="Center"
Width="88"
MaxHeight="32"
TextTrimming="WordEllipsis"
Style="{StaticResource BasicTextStyle}"/>
正如您所看到的,Foreground
属性已固定为AppBarItemForegroundThemeBrush
。您可以将其更改为{TemplateBinding Foreground}
,使其与您在LogoutAppBarButtonStyle
中设置的颜色相匹配,或者您可以直接在模板中为其指定另一种自定义颜色。
另外,请不要忘记其他视觉状态的样式(PointerOver
,Pressed
,Disabled
和Checked
)。它们也设置为主题颜色。您可以在模板的VisualStateManager
内更改它们