2010-02-16 65 views
7

點擊我們的應用程序的WPF按鈕後,他們發出藍光,回到原來的顏色,回藍等,這似乎是在Windows Vista/7的默認行爲。它不會發生在XP上。有什麼建議?發光的WPF按鈕

回答

8

你需要重寫默認按鈕模板 - http://mark-dot-net.blogspot.com/2007/07/creating-custom-wpf-button-template-in.html應該獲得亞開始。

特別是第3節:

<ControlTemplate.Triggers> 
    <Trigger Property="IsMouseOver" Value="True"> 
     <Setter TargetName="border" Property="BorderBrush" Value="#FF4788c8" /> 
     <Setter Property="Foreground" Value="#FF4788c8" /> 
    </Trigger> 
    <Trigger Property="IsPressed" Value="True">     
     <Setter Property="Background" > 
      <Setter.Value> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" > 
        <GradientStop Color="#FFFFD190" Offset="0.35"/> 
        <GradientStop Color="Orange" Offset="0.95"/> 
        <GradientStop Color="#FFFFD190" Offset="1"/> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 
     <Setter TargetName="content" Property="RenderTransform" > 
      <Setter.Value> 
       <TranslateTransform Y="1.0" /> 
      </Setter.Value> 
     </Setter> 
    </Trigger> 
    <Trigger Property="IsDefaulted" Value="True"> 
     <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" /> 
    </Trigger> 
    <Trigger Property="IsFocused" Value="True"> 
     <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" /> 
    </Trigger> 
    <Trigger Property="IsEnabled" Value="False"> 
     <Setter TargetName="border" Property="Opacity" Value="0.7" /> 
     <Setter Property="Foreground" Value="Gray" /> 
    </Trigger> 
</ControlTemplate.Triggers> 
+0

謝謝!這正是我需要的。 – Jason

+0

很高興爲你效勞。 – Nate

+0

你的觸發器會更適合的風格,比使用控件模板 – markmnl

1

你需要重寫ControlTemplate。否則,它使用觸發器來設置事件上的顏色,例如將鼠標懸停在其上。如果你簡單地設置Background,你只設置默認的背景時,有沒有Trigger回事。