Воспроизведение звука wav при нажатии кнопки в wpf

Я хочу воспроизвести звук с событием клика моего события нажатия кнопки во всем моем приложении,

Я нашел 1 код, который воспроизводит звук, когда я нажимаю кнопку.

private void btn_Click(object sender, RoutedEventArgs e)
    {
        MediaPlayer mplayer = new MediaPlayer();
        mplayer.Open(new Uri("ding.wav", UriKind.Relative));
        mplayer.Play();
        //our code...
    }

Я знаю, что это неправильное решение, поэтому, пожалуйста, скажите мне, есть ли другое решение, потому что я должен написать эту 3 строки для каждого события нажатия кнопки и ее утомительной работы.

пожалуйста, помогите решить эту проблему.

ожидание ответа...

заблаговременно

Ответ 1

Просто определите стиль, который воспроизводит звук в событии PreviewMouseDown:

<Style TargetType="Button">
    <Style.Triggers>
        <EventTrigger RoutedEvent="PreviewMouseDown">
            <SoundPlayerAction Source="/ClickingButton;component/click.wav" />
        </EventTrigger>
    </Style.Triggers>
</Style>

См. здесь для обсуждения того, почему не использовать событие Button.Click в триггере события. В основном проблема состоит в том, что событие Button.Click является пузырящимся, а триггер события будет выполняться после выполнения кода в вашем обычном обработчике кликов, т.е. Звук будет иметь задержку, если обработчик события сделает что-то, что требует некоторых время.