如何更改鼠标悬停时按钮的背景?

问题描述:

我有一个用C#编写的WPF应用程序。如何更改鼠标悬停时按钮的背景?

我做了一个按钮。我改变了背景颜色。

当鼠标悬停在我的按钮上时,如何更改偏蓝色?以及如何控制动画/更改时间?

http://msdn.microsoft.com/en-us/magazine/cc163421.aspx

您将需要寻找到你的按钮创建一个“风格”。这将在XAML中完成,您会发现Microsoft Expression Blend真正简化了WPF项目大部分方面的设计。

<Style x:Key="StyleButton" TargetType="{x:Type Button}"> 
    <Setter Property="FontFamily" Value="Tahoma"></Setter> 
      <Setter Property="Height" Value="50"></Setter> 
      <Setter Property="Width" Value="100"></Setter> 
      <Setter Property="Foreground" Value="Blue"></Setter> 
      <Setter Property="Background"> 
       <Setter.Value> 
        <LinearGradientBrush> 
         <LinearGradientBrush.GradientStops> 
          <GradientStop Offset="0" Color="White"></GradientStop> 
          <GradientStop Offset="1" Color="Lime"></GradientStop> 
          <GradientStop Offset="2" Color="Yellow"></GradientStop> 
         </LinearGradientBrush.GradientStops> 
        </LinearGradientBrush> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <MultiTrigger> 
        <MultiTrigger.Conditions> 
         <Condition Property="IsFocused" Value="True"/> 
         <Condition Property="IsMouseOver" Value="True"/> 
        </MultiTrigger.Conditions> 
        <Setter Property="Foreground" Value="Yellow"/> 
        <Setter Property="Background"> 
         <Setter.Value> 
          <LinearGradientBrush> 
           <LinearGradientBrush.GradientStops> 
            <GradientStop Color="blue" Offset="0"/> 
            <GradientStop Color="#CC00FF" Offset="1"/> 
            <GradientStop Color="#FF00CC" Offset="2"/> 

           </LinearGradientBrush.GradientStops> 
          </LinearGradientBrush> 
         </Setter.Value> 
        </Setter> 
       </MultiTrigger> 
      </Style.Triggers> 
     </Style> 
+0

我建议在答案中增加一个描述,因为这个特定的代码可能无助于2年前问这个问题的OP。对于面临类似挑战的人来说,解释会更有帮助。 – MasterAM 2013-07-05 21:07:05