在wpf中单击按钮时播放wav声音

Vir*_*iya 11 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...
    }
Run Code Online (Sandbox Code Playgroud)

我知道这不是正确的解决方案,所以请告诉我是否有其他解决方案,becoz我必须将这3行写入每个按钮点击事件及其繁琐的工作.

请帮忙解决这个问题.

等待回复...

提前致谢

Dan*_*rth 22

只需定义一个在事件中播放声音的样式PreviewMouseDown:

<Style TargetType="Button">
    <Style.Triggers>
        <EventTrigger RoutedEvent="PreviewMouseDown">
            <SoundPlayerAction Source="/ClickingButton;component/click.wav" />
        </EventTrigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

请参阅此处,了解为何不在Button.Click事件触发器中使用事件.基本上,问题是,Button.Click事件是冒泡的,事件触发器将在执行 正常单击处理程序中的代码之后执行,即声音将有延迟,如果事件处理程序执行需要一些时间的事情.

  • +1没有使用点击事件/没有代码执行它 (3认同)