WPF ButtonStyle和MouseEnter / -Leave-Event

时间:2016-05-03 11:11:56

标签: c# wpf mouseenter


我在我的应用程序中为我的按钮设置了样式模板,如下所示:

<Style TargetType="{x:Type Button}">
            <Setter Property="OverridesDefaultStyle" Value="true"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border Name="Border">
                            <ContentPresenter RecognizesAccessKey="True"/>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsKeyboardFocused" Value="true">
                                <Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" />
                            </Trigger>
                            <Trigger Property="IsDefaulted" Value="true">
                                <Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" />
                            </Trigger>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter TargetName="Border" Property="Background" Value="Transparent" />
                            </Trigger>
                            <Trigger Property="IsPressed" Value="true">
                                <Setter TargetName="Border" Property="Background" Value="Transparent" />
                                <Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" />
                            </Trigger>
                            <Trigger Property="IsEnabled" Value="false">
                                <Setter TargetName="Border" Property="Background" Value="Transparent" />
                                <Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" />
                                <Setter Property="Foreground" Value="Transparent"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

现在我想在我的一些按钮中放置一个MouseEnter和一个MouseLeave事件,并在运行中更改它们的背景等。如果我禁用了样式,一切都按预期工作正常(除了按钮得到边框和标准样式的蓝色背景)。

现在我的问题是:“我怎么能改变样式为MouseOver上没有蓝色背景的无边框透明按钮,并启动MouseEnter和MouseLeave,以便以编程方式设置背景?

1 个答案:

答案 0 :(得分:1)

你应该为你想要与其他按钮做出不同反应的按钮添加额外的样式,然后使用粘贴代码中的触发器来改变背景。

<Style x:Key="diffrentButton" TargetType="{x:Type Button}">

...