WPF——为什么这个 EventTrigger 不起作用?

标签 wpf eventtrigger

我正在尝试采用一种风格来执行我的所有触发器。这就是我所拥有的,但 SoundPlayerAction 没有触发:

<Style x:Key="{x:Type ListBoxItem}" TargetType="ListBoxItem">
        <Setter Property="SnapsToDevicePixels" Value="true"/>
        <Setter Property="OverridesDefaultStyle" Value="true"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListBoxItem">
                    <Border Name="Border" Padding="2" SnapsToDevicePixels="true">
                        <ContentPresenter />
                    </Border>
                    <ControlTemplate.Triggers>
                        <EventTrigger RoutedEvent="Border.MouseDown">
                            <SoundPlayerAction Source="/sounds/simpleclick.wav"/>
                        </EventTrigger>
                        <Trigger Property="IsSelected" Value="true">
                            <Setter TargetName="Border" Property="Background" Value="{StaticResource SelectedBackgroundBrush}"/>                                
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                        </Trigger>                                   
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

最佳答案

我测试了这个 XAML,唯一的问题是您的 RoutedEvent 没有触发。 Border.MouseDown 肯定行不通。如果您希望在选择项目时播放声音(这似乎是您正在尝试执行的操作),请尝试 GotFocus 事件。

因此,将您的 EventTrigger 更改为:

<EventTrigger RoutedEvent="ListBoxItem.GotFocus">

对我来说,这很有效,声音开始播放。

关于WPF——为什么这个 EventTrigger 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1228400/

相关文章:

wpf - WPF 中的 SelectionChanged 事件是否只能针对用户交互进行处理?

c# - 如何将枚举绑定(bind)到 WPF 中组合框的依赖属性?

javascript - 使用触发器选择所有复选框 - jquery

c# - MVVM 处理 MouseDragElementBehavior 的拖动事件

javascript - 如何手动触发提交功能?

c# - 如何检查是否安装了 .Net Framework [C#/WPF]

c# - 禁用 wpftoolkit 图表数据点

wpf - ControlTemplate中的ContentPresenter无法更改附加的依赖项属性

jquery - 触发事件不适用于ajax加载的html

MySQL如何在同一表中仅对一列更新进行时间戳