当“IsMouseOver”为True时,更改WPF按钮前景

时间:2016-06-13 09:50:22

标签: wpf vb.net xaml button styles

我已经看到了一些类似的问题,但解决方案似乎没有效果。

我更愿意通过XAML获得解决方案,但也不介意通过代码(VB.net)。

我目前有这个代码,不知道它有多少是正确的:

<Style TargetType="{x:Type Button}">
            <Setter Property="OverridesDefaultStyle" Value="True"/>
            <Setter Property="Foreground" Value="DarkSlateGray"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border Background="White">
                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Foreground" Value="DodgerBlue"/>
                </Trigger>
            </Style.Triggers>
        </Style>

提前致谢。

1 个答案:

答案 0 :(得分:1)

一般来说都是正确的。但请注意,模板中的ContentPresenter未定义Content属性。当然,如果您需要更复杂的触发器,您还可以将IsEnabled等其他内容与MultiTrigger结合使用。