2013-07-21 43 views
5

i bazı kullanıcı kontrol sayfası ve bir MainWindow var, bu yüzden gizli kullanıcı kontrolü sayfasını ayarlamak istiyoruz ve onun gizli bir kez, o bildiğimWPF C# Kullanıcı Kontrol sayfası IsVisibleChanged olay

oynarken onun sesini durdurur IsVisibleChanged olayı ile bir şeyler yapmak zorundayım ama nasıl başlayacağım?

Böyle bir şey mi?

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

benim kullanıcı kontrol sayfası (i özel bir denetimi kullanarak MainWindow içinde göstermek) benim MainWindow ve kullanıcı kontrol sayfasında Çünkü

olan bazı ses çalma, i MainWindow bulunduğu ev butonu tıklandığında Kullanıcı kontrol sayfasını gizli ve ana sayfamı gösterecek şekilde ayarlayacağım, ancak şimdi gizlendiğinde, o sayfadaki ses hala oynatılıyor, bu yüzden sormaya gittim ve bazı kullanıcı kontrol sayfasında kullanıcı adı IsVisibleChanged olayını kullandı. Bu ses çalıyor) ama nasıl yazdım, hatta bunu yazmak için yeni bir şey yazdım.

cevap

11

İlk çözüm:

İkinci argüman olarak DependencyPropertyChangedEventArgs kullanmalıdır ve sayfa görünür ya da değil (msdn) olacaktır olmadığını gösterir NewValue özelliğini kontrol etmelidir.

Örnek:

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

Here örnek çözeltisi (IsVisibleChangedExample) bulabilirsiniz.

İkinci çözüm: LoadedBehavior (msdn) ve UnloadedBehavior (msdn): Eğer MediaElement (msdn) müzik çalmak için kullanırsanız

, iki özelliklerini kullanmalıdır.

Örnek: yanıtlarken ve zaman ayırdığınız için

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

Merhaba teşekkürler. Daha fazla detaylandırmak için WPF C# gibi programlamaya yeni başlıyorum. Ne demek istediğini anlamadım, ama kullanıcı kontrol sayfasının MainWindow'da başka bir özel kontrolde olup olmadığını söyleyeyim, ama sadece bu özel kontrolü gizli olarak ayarladığımı, kullanıcı kontrol sayfasının da gizlendiğini algılayacak ya da sadece gizli olarak ayarladığım özel kontrolü algıla. Onun için özel denetimi gizli olarak ayarladım ama kullanıcı kontrol sayfasının içinde. Benim fakir İngilizce için özür dilerim, umarım anlarsın :) – what

+0

Ve yukarıda kodunuzu nerede kullanmalıyım? kullanıcı kontrol sayfasında? Şüphelerimi açıkladığın için ve soruları bombaladığım için özür dilediğin için teşekkürler, gerçekten üzgünüm. – what

+0

@ user2601570 Cevabımı tekrar kontrol edin :) – kmatyaszek