未在WPF中触发的iPressed事件

未在WPF中触发的iPressed事件,wpf,xaml,events,button,Wpf,Xaml,Events,Button,我正在尝试编辑WPF应用程序按钮的默认模板,“MouseEnter”和“MouseLeave”事件正在工作,问题是“IsPressed”事件基本上没有触发。我还删除了 RenderPressed="{TemplateBinding IsPressed}" 部分,但按钮似乎忽略了我的iPressed事件 代码如下: <LinearGradientBrush x:Key="ButtonNormalBackground" EndPoint="0,1" StartPoint="0,0">

我正在尝试编辑WPF应用程序按钮的默认模板,“MouseEnter”和“MouseLeave”事件正在工作,问题是“IsPressed”事件基本上没有触发。我还删除了

RenderPressed="{TemplateBinding IsPressed}"
部分,但按钮似乎忽略了我的iPressed事件 代码如下:

<LinearGradientBrush x:Key="ButtonNormalBackground" EndPoint="0,1" StartPoint="0,0">
    <GradientStop Color="#F3F3F3" Offset="0"/>
    <GradientStop Color="#EBEBEB" Offset="0.5"/>
    <GradientStop Color="#DDDDDD" Offset="0.5"/>
    <GradientStop Color="#CDCDCD" Offset="1"/>
</LinearGradientBrush>
<SolidColorBrush x:Key="ButtonNormalBorder" Color="#FF707070"/>
<Style x:Key="ButtonDark1" TargetType="{x:Type Button}">
    <Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/>
    <Setter Property="Background" Value="{StaticResource ButtonNormalBackground}"/>
    <Setter Property="BorderBrush" Value="{StaticResource ButtonNormalBorder}"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
    <Setter Property="HorizontalContentAlignment" Value="Center"/>
    <Setter Property="VerticalContentAlignment" Value="Center"/>
    <Setter Property="Padding" Value="1"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Themes:ButtonChrome x:Name="Chrome" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" RenderDefaulted="{TemplateBinding IsDefaulted}" SnapsToDevicePixels="true">
                    <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                </Themes:ButtonChrome>
                <ControlTemplate.Triggers>
                    <EventTrigger RoutedEvent="Control.MouseEnter">
                        <BeginStoryboard>
                            <Storyboard >
                                <DoubleAnimation Duration="0:0:0.3" To="0.8" Storyboard.TargetProperty="Opacity"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                    <EventTrigger RoutedEvent="Control.MouseLeave">
                        <BeginStoryboard>
                            <Storyboard >
                                <DoubleAnimation Duration="0:0:0.3" To="0.5" Storyboard.TargetProperty="Opacity"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                    <Trigger Property="IsKeyboardFocused" Value="true">
                        <Setter Property="RenderDefaulted" TargetName="Chrome" Value="false"/>
                    </Trigger>
                    <Trigger Property="ToggleButton.IsChecked" Value="true">
                        <Setter Property="RenderPressed" TargetName="Chrome" Value="true"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Foreground" Value="#ADADAD"/>
                    </Trigger>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="Foreground" Value="LightBlue"></Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>


提前感谢。

我们再次遇到一个问题,有人把他们的
控制模板弄乱了,想让其他人来修复它。答案总是一样的。。。从您的
按钮的默认
控制模板开始。您可以在MSDN的页面中找到您的
按钮的默认
控制模板

如果查看链接页面,您将看到一个名为
VisualStateManager.VisualStateGroups
集合,在该集合中,您将发现一个名为
VisualState
已按下。再往上一点,你会看到:

<VisualTransition GeneratedDuration="0" To="Pressed" />

这些是管理视觉
按下状态的工具


更改默认的
ControlTemplate
时,最好从整个默认XAML开始,首先在自定义的
ControlTemplate
中使用它。一旦你让它工作起来,你就可以开始操作它,一点一点地,并在每几次更改后定期检查它。然后,如果有一次不起作用,您可以撤消最后几次更改,找出您做错了什么。

对不起,我是WPF新手,我将从您所说的默认模板开始,而不是编辑现有模板,希望这会得到修复,谢谢。很好,这很有效,从默认模板开始,它显示我在事件中以错误的方式分配属性。我使用了一个默认的笔刷来改变颜色,但它不起作用。谢谢