2011-05-11 24 views
10

Quiero jugar con el sonido evento de clic de mi evento de clic de botón en toda mi applciation,Juego wav sonido cuando haga clic en el botón en WPF

He encontrado 1 código que reproduce sonido cuando hago clic en el botón.

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

Sé que esto no es la solución correcta, así que por favor dime si hay otra solución, becoz tengo que escribir esta línea 3 de cada evento de clic de botón y su trabajo tedioso.

por favor ayuda a resolver este problema.

esperar la respuesta ...

gracias de antemano

Respuesta

21

apenas define un estilo que reproduce el sonido en el caso PreviewMouseDown:

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

Ver here para una discusión sobre por qué no use el evento Button.Click en el desencadenante de evento. Básicamente, el problema es que el evento Button.Click es burbujeante y el desencadenador de evento se ejecutará después de ejecutar el código en su controlador de clic normal, es decir, el sonido tendrá un retraso, si su controlador de eventos hace algo que requiera hora.

+2

+1 por no usar el evento de clic/hacerlo sin el código – HCL

+0

obtengo un error mientras coloco este código entre la etiqueta . "No se pudo cargar el archivo o ensamblado 'ClickingButton, Culture = neutral' o una de sus dependencias. El sistema no puede encontrar el archivo especificado." –

+0

Sure. Debe cambiarlo según sus necesidades ... Consulte los comentarios en MSDN para esta propiedad: http://msdn.microsoft.com/en-us/library/system.windows.controls.soundplayeraction.source.aspx –

Cuestiones relacionadas