2013-12-18 32 views
1

我在自定義顏色的界面上有幾個按鈕。當我將鼠標懸停在它們上面時,它們會被微軟在Windows中使用的藍色所染。它看起來不錯,只是不在我的顏色組合(黑色和金色)。消除按鈕單擊上的「突出顯示」 - XAML

如何消除點擊行爲中的突出顯示?我需要爲我所有的按鈕,它從一個基本樣式繼承的做到這一點:

<Style x:Key="ContentControlElementsStyle" TargetType="ContentControl"> 
      <Setter Property="FontFamily" Value="Segoe UI"/> 
      <Setter Property="Background" Value="Black"/> 
      <Setter Property="Foreground" Value="#F1B82D"/> 
      <Setter Property="BorderBrush" Value="#F1B82D"/> 
</Style> 

回答

2

使用以下按鈕樣式。

<Style TargetType="Button"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ButtonBase}" > 
        <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> 
         <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
        </Border> 
        <ControlTemplate.Triggers> 
         <!--<Trigger Property="Button.IsDefaulted" Value="True"> 
          <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> 
         </Trigger>--> 
         <!--<Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Background" TargetName="border" Value="#FFBEE6FD"/> 
          <Setter Property="BorderBrush" TargetName="border" Value="#FF3C7FB1"/> 
         </Trigger>--> 
         <!--<Trigger Property="IsPressed" Value="True"> 
          <Setter Property="Background" TargetName="border" Value="#FFC4E5F6"/> 
          <Setter Property="BorderBrush" TargetName="border" Value="#FF2C628B"/> 
         </Trigger>--> 
         <Trigger Property="ToggleButton.IsChecked" Value="True"> 
          <Setter Property="Background" TargetName="border" Value="#FFBCDDEE"/> 
          <Setter Property="BorderBrush" TargetName="border" Value="#FF245A83"/> 
         </Trigger> 
         <Trigger Property="IsEnabled" Value="False"> 
          <Setter Property="Background" TargetName="border" Value="#FFF4F4F4"/> 
          <Setter Property="BorderBrush" TargetName="border" Value="#FFADB2B5"/> 
          <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="#FF838383"/> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

我評論了在鼠標懸停和按下狀態時會導致顏色變化的觸發器。

+0

您,先生,是一位紳士和學者。謝謝。 – nerdenator

1

線沿線的東西:

<Style.Triggers> 
     <Trigger Property="Button.IsPressed" Value="True"> 
      <Setter Property="Content"> 
       <Setter.Value> 
        <Image Source="MyAwesomeClickedPicture.png" Height="32" Width="32" /> 
       </Setter.Value> 
      </Setter> 
     </Trigger> 
     <Trigger Property="Button.IsMouseOver" Value="True"> 
      <Setter Property="Content"> 
       <Setter.Value> 
        <Image Source="MyAwesomePicture.png" Height="32" Width="32" /> 
       </Setter.Value> 
      </Setter> 
     </Trigger> 
    </Style.Triggers> 

但在你的情況我猜你會想設置顏色不是像我這樣的圖像

+0

我認爲你正在做些什麼...雖然我沒有擺脫突出顯示。我想這是設置屬性的方式。任何想法可能是什麼? – nerdenator

+0

你想擺脫鼠標懸停的突出顯示?或點擊? – TMan

+0

我想消除鼠標懸停上的突出顯示,並在點擊時反轉顏色。對不起,如果我以前沒有說清楚:P – nerdenator

相關問題