在EventTrigger中使用SoundPlayerAction-Resource

时间:2014-10-02 12:43:35

标签: c# wpf

我将SoundPlayerAction指定为资源,如下所示:

<Window.Resources>
<SoundPlayerAction x:Key="ButtonClickSound" Source="/Resources/ButtonClick.wav" />
</Window.Resources>

现在我想在EventTrigger的{​​{1}}内引用此资源。我想做的是这样的事情:

Style

但这不起作用。有什么方法可以在<Style.Triggers> <EventTrigger RoutedEvent="PreviewMouseDown"> {DynamicResource ButtonClickSound} </EventTrigger> </Style.Triggers>

中引用资源

1 个答案:

答案 0 :(得分:2)

我不相信你可以在没有任何代码的情况下完全按照XAML的要求做到。但是,您应该能够使用SoundPlayerAction中的EventSetter元素播放声音...尝试更类似的内容:

<EventTrigger RoutedEvent="UIElement.PreviewMouseDown">
    <EventTrigger.Actions>
        <SoundPlayerAction Source="/Resources/ButtonClick.wav" />
    </EventTrigger.Actions>
</EventTrigger>

更新&gt;&gt;&gt;

您无法在此处使用Resource,但您可以将数据绑定到SoundPlayerAction.Source Property

<EventTrigger RoutedEvent="UIElement.PreviewMouseDown">
    <EventTrigger.Actions>
        <SoundPlayerAction Source="{Binding SoundSource}" />
    </EventTrigger.Actions>
</EventTrigger>

然后在稍后阶段:

SoundSource = "/Resources/ButtonClick.wav";