2013-07-21 12 views
5

ich einige Benutzerkontrolle Seite haben, und ein Hauptfenster, so würde Ich mag Benutzerkontrolle Seite versteckt setzen, und sobald seine versteckten, stoppt er seinen Ton vom SpielenWPF C# Benutzerverwaltung Seite IsVisibleChanged Ereignis

ich weiß, Ich muss etwas mit dem IsVisibleChanged-Ereignis machen, aber ich bin nicht weitergekommen, um es zu starten.

Ist es ungefähr so?

(pagename).IsVisibleChanged(object sender , RoutedEventArgs e) 
{ ap.Stop() } 

Weil meine Benutzersteuerung Seite (i zeige sie im Hauptfenster einer Steuer individuellen Verwendung) in meinem Hauptfenster ist und die Benutzerkontrolle Seite hat einige Audio-Wiedergabe, wenn ich die Home-Taste klicken, die auf dem Hauptfenster befindet, Ich setze die Benutzerkontrollseite auf versteckt und zeige meine Homepage, aber jetzt, wenn es ausgeblendet ist, wird das Audio von dieser Seite noch abgespielt, also ging ich zu fragen und einige sagten IsVisibleChanged Ereignis in der Benutzerkontrollseite (1 das spielt das audio) aber ich blieb stecken wie ich schreibe es denn ich bin neu hier.

Antwort

11

Erste Lösung:

Sie sollten DependencyPropertyChangedEventArgs als zweites Argument verwenden und Sie sollten NewValue Eigenschaft überprüfen, ob Seite sichtbar sein wird oder nicht anzeigt (msdn).

Beispiel:

void (pagename)_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) 
{ 
    if (!((bool)e.NewValue)) 
    { 
     ap.Stop(); 
    } 
} 

Here Sie die Probenlösung (IsVisibleChangedExample) finden.

Zweite Lösung:

Wenn Sie MediaElement (msdn), um die Musik zu spielen, sollten Sie zwei Eigenschaften verwenden: LoadedBehavior (msdn) und UnloadedBehavior (msdn).

Beispiel:

<MediaElement Name="me" Source="path to your music file" 
       LoadedBehavior="Play" UnloadedBehavior="Stop" Volume="100" /> 
+0

Hallo Danke für die Antwort und Ihre Zeit. Ich bin neu in der Programmierung sowie WPF C#, nett, mehr zu erarbeiten? Ich verstehe nicht wirklich, was Sie versuchen zu bedeuten, aber lassen Sie uns sagen, wenn die Benutzersteuerungsseite in einem anderen benutzerdefinierten Steuerelement im MainWindow ist, aber ich nur dieses benutzerdefinierte Steuerelement ausgeblendet, wird es erkennen, wie die Benutzersteuerungsseite auch ausgeblendet ist oder nur das bestimmte Steuerelement erkennen, das ich als versteckt eingestellt habe. Weil ich das benutzerdefinierte Steuerelement auf "Versteckt" gesetzt habe, aber diese Benutzersteuerungsseite darin ist. Sorry für mein schlechtes Englisch, hoffe du verstehst :) – what

+0

Und wo sollte ich deinen Code oben verwenden? auf der Benutzerkontrollseite? Danke, dass du meine Zweifel geklärt hast, und verzeih mir, dass ich Fragen bombardiert habe, es tut mir wirklich leid. – what

+0

@ user2601570 überprüfen Sie meine Antwort erneut :) – kmatyaszek