2012-11-30 53 views
4

可以使用不同的顏色設置AutomationProperties.Name值的樣式嗎? 我從應用程序中的黑暗主題中獲取基本文字顏色。我有一個自定義背景色和這就是爲什麼我需要一個特定的ForegroundColorTextColor此屬性(Value="OtherUserAppBarButton"TopAppBar按鈕Windows應用商店應用中的AutomationProperties樣式

<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> 

有人偷的想法?

回答

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, DisabledChecked)的樣式。他們也被設置爲主題顏色。您可以在VisualStateManager內更改模板