在WPF中鼠标悬停按钮上设置边框大小

时间:2015-06-16 12:12:27

标签: wpf

我试图在用户将鼠标悬停在按钮上时设置边框颜色属性。目前我正在使用以下XAML。

                                <Button.Style>
                <Style TargetType="{x:Type Button}">
                    <Setter Property="Background" Value="#FF0081a7"/>
                    <Setter Property="BorderBrush" Value="White"/>
                    <Setter Property="BorderThickness" Value="2,2,2,2"/>
                    <Setter Property="Foreground" Value="#FFffffff"/>
                    <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="#ccCCCCCC"/>
                            <Setter Property="BorderBrush" Value="Gold"/>
                            <Setter Property="BorderThickness" Value="2,2,2,2"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Button.Style>

这仅适用于颜色变化。另一方面,边框根本不显示。我确信,我错过了一些非常简单的事情,唯一的事情是我无法找到它是什么。

1 个答案:

答案 0 :(得分:2)

您实际上并未使用BorderBrushBorderThickness属性......您需要在 ControlTemplate内实际使用它们。 。试试这个:

<ControlTemplate TargetType="{x:Type Button}">
    <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding 
        BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Border>
</ControlTemplate>