4

AutomationProperties.Name是否可以用不同的颜色设置值的样式?我从我的应用程序中的深色主题中获得了基本的文本颜色。我有一个自定义背景颜色,这就是为什么我需要一个特定的ForegroundColorTextColor这个属性(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="&#xE1A6;"/>
    <Setter Property="Foreground" Value="#ffffffff" />
</Style>

有人有想法吗?

4

1 回答 1

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也可以直接在模板中为其提供另一种自定义固定颜色。

也不要忘记其他视觉状态的样式(、PointerOverPressed)。它们也设置为主题颜色。您可以在模板中更改它们DisabledCheckedVisualStateManager

于 2012-12-01T06:07:03.573 回答