我将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>
?
答案 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";