在EventTrigger中使用SoundPlayerAction资源
本文关键字:SoundPlayerAction 资源 EventTrigger | 更新日期: 2023-09-27 18:25:17
我有一个指定为资源的SoundPlayerAction
,如下所示:
<Window.Resources>
<SoundPlayerAction x:Key="ButtonClickSound" Source="/Resources/ButtonClick.wav" />
</Window.Resources>
现在我想在Style
的EventTrigger
中引用这个资源。我想做的是这样的事情:
<Style.Triggers>
<EventTrigger RoutedEvent="PreviewMouseDown">
{DynamicResource ButtonClickSound}
</EventTrigger>
</Style.Triggers>
但这并不奏效。有没有什么方法可以从EventTrigger
中引用资源?
我不相信你可以在没有任何代码的情况下完全在XAML中做你想要的事情。但是,您应该能够在EventSetter
中使用SoundPlayerAction
元素来播放声音。。。试试类似的东西:
<EventTrigger RoutedEvent="UIElement.PreviewMouseDown">
<EventTrigger.Actions>
<SoundPlayerAction Source="/Resources/ButtonClick.wav" />
</EventTrigger.Actions>
</EventTrigger>
更新>>>
这里不能使用Resource
,但可以将数据绑定到SoundPlayerAction.Source
属性:
<EventTrigger RoutedEvent="UIElement.PreviewMouseDown">
<EventTrigger.Actions>
<SoundPlayerAction Source="{Binding SoundSource}" />
</EventTrigger.Actions>
</EventTrigger>
然后在后期阶段:
SoundSource = "/Resources/ButtonClick.wav";