wpf - 鼠标悬停时更改按钮的颜色

标签 wpf xaml user-interface button mouseover

我想在IsMouseOver == True时更改按钮的背景颜色

    <Button Command="{Binding ClickRectangleColorCommand}" Background="{Binding Color, Converter={StaticResource RGBCtoBrushColorsConverter},Mode=TwoWay}" Width="auto" Height="40">
        <TextBlock Foreground="Black" Text="{Binding Color, Converter={StaticResource RGBCColorToTextConveter},Mode=TwoWay}"/>
          <Button.Style>
             <Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
               <Style.Triggers>
                  <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="DarkGoldenrod"/>
                  </Trigger>
               </Style.Triggers>
             </Style>
         </Button.Style>
    </Button>

我似乎无法理解为什么这个触发器不起作用。

最佳答案

试试这个 - 在此示例中原始颜色为绿色,鼠标悬停颜色将为 DarkGoldenrod

<Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="50" Height="50" HorizontalContentAlignment="Left" BorderBrush="{x:Null}" Foreground="{x:Null}" Margin="50,0,0,0">
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Setter Property="Background" Value="Green"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border Background="{TemplateBinding Background}">
                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="DarkGoldenrod"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

关于wpf - 鼠标悬停时更改按钮的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20073294/

相关文章:

c# - 如何在 xml 文档中使用 XmlWriter 添加命名空间

wpf - XAML 无法从 Resx 文件读取值

c# - 我如何知道 WindowsFormsHost 何时在 WPF 中调整大小?

java - 如何使用从另一个线程收到的信息更新主 UI? (当线程仍在运行时)

c - 在 C 中制作 GUI 模拟器

c# - 如何从 WinForms 迁移到 WPF

c# - 如何在不使用控件的情况下在 WPF 中打印内容?

c# - 当不同程序集中的 App.xaml 时,Visual Studio 2012 XAML 设计器不显示正确的内容

visual-studio - 使用 XAML 设计器时发生 NullReferenceException

c++ - 如何实现点击式用户交互模型?