Ответ 1
Просто определите стиль, который воспроизводит звук в событии PreviewMouseDown
:
<Style TargetType="Button">
<Style.Triggers>
<EventTrigger RoutedEvent="PreviewMouseDown">
<SoundPlayerAction Source="/ClickingButton;component/click.wav" />
</EventTrigger>
</Style.Triggers>
</Style>
См. здесь для обсуждения того, почему не использовать событие Button.Click
в триггере события. В основном проблема состоит в том, что событие Button.Click
является пузырящимся, а триггер события будет выполняться после выполнения кода в вашем обычном обработчике кликов, т.е. Звук будет иметь задержку, если обработчик события сделает что-то, что требует некоторых время.