Style 的 EventSetter 是否有可能与另一个事件处理程序并排运行?

Is it possible that the EventSetter of a Style runs side by side with another event handler?

我在 WPF 中为 Button 定义了 Style。在那种风格中,我希望在单击按钮时更改按钮的背景。例如:

<Style x:Key="TheButton" TargetType="{x:Type Button}">
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="Margin" Value="5"/>
    <EventSetter Event="Click" Handler="ChangeBackground"/>
</Style>

在后面的代码中:

private void ChangeBackground(object sender, RoutedEventArgs e)
{
    var btn = sender as Button;
    if(btn != null)
        btn.Background = Brushes.SeaShell;
}

所以这是一种应用于多个 Button 的通用样式,每个执行不同的工作。上面的事件处理程序是否可以 运行 与单击每个按钮时指定的其他事件处理程序一起使用?

如果我为使用此样式的按钮指定 Click 处理程序,它会覆盖 EventSetter 还是 EventSetter 具有更高的优先级?

我会使用一些 XAML 魔法来改变背景(但这是个人喜好问题)。按钮的 Click 处理程序并行工作。

    <Style TargetType="Button">
        <Style.Triggers>
            <EventTrigger RoutedEvent="Click">
                <BeginStoryboard>
                    <Storyboard>
                        <ColorAnimation To="#FFFF0000" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Style.Triggers>
    </Style>

Local value always takes precedence.

因此,正常的 Click 处理程序将触发,然后是您的 EventSetter。