12 votes

Jouer un son wav quand on clique sur un bouton dans wpf

Je veux jouer un son avec l'événement de clic de mon bouton dans toute mon application,

J'ai trouvé un code qui joue un son lorsque je clique sur le bouton.

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

Je sais que ce n'est pas la bonne solution, alors s'il vous plaît dites-moi s'il y a d'autres solutions, parce que je dois écrire ces 3 lignes à chaque événement de clic de bouton et son travail fastidieux.

Veuillez m'aider à résoudre ce problème.

en attendant la réponse...

merci d'avance

23voto

Daniel Hilgarth Points 90722

Définissez simplement un style qui joue le son sur l'événement PreviewMouseDown :

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

Voir aquí pour une discussion sur les raisons de ne pas utiliser Button.Click dans le déclencheur d'événements. En fait, le problème est que le Button.Click l'événement est une bulle et le déclencheur d'événement sera exécuté après le code de votre gestionnaire de clic normal a été exécuté, c'est-à-dire que le son aura un retard, si votre gestionnaire d'événement fait quelque chose qui prend du temps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X