【问题标题】:How do I change the background of my button on mouseover?如何在鼠标悬停时更改按钮的背景?
【发布时间】:2010-10-13 13:38:04
【问题描述】:

我有一个用 C# 编写的 WPF 应用程序。

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

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

【问题讨论】:

    标签: c# .net wpf colors wpf-controls


    【解决方案1】:

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

    您需要考虑为您的按钮创建一个“样式”。这将在 XAML 中完成,您会发现 Microsoft Expression Blend 确实简化了 WPF 项目大部分方面的设计。

    【讨论】:

      【解决方案2】:
          <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>
      

      【讨论】:

      • 我建议在答案中添加描述,因为这个特定的代码可能对 2 年前提出这个问题的 OP 没有帮助。对于面临类似挑战的人来说,解释会更有帮助。
      猜你喜欢
      • 2017-07-28
      • 2014-10-16
      • 2017-12-15
      • 2018-01-15
      • 2019-02-05
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多