2013-07-19 97 views
0

我在MainWindow中有一個頁面轉換控件(這幾個按鈕和一個導致主頁的主頁按鈕),所以我點擊了MainWindow中的一個按鈕,它在用戶控件頁面在MainWindow中進行頁面轉換,在用戶控制頁面播放音頻,沒問題,但是當我點擊主頁按鈕顯示主頁時,該用戶控制頁面的音頻仍在播放。我怎樣才能阻止用戶控制頁面在後臺運行?如何禁用在後臺運行的控制

這是我所呼叫的用戶控制網頁到在主窗口的頁面轉換控制:

private void button2_Click(object sender, RoutedEventArgs e) // Story 
    { 
     Story page = new Story(); 
     pageTransition1.IsEnabled = true; 
     pageTransition1.Visibility = System.Windows.Visibility.Visible; 
     grid1.Visibility = System.Windows.Visibility.Hidden; 
     pageTransition1.ShowPage(page); 
    } 


    private void button5_Click(object sender, RoutedEventArgs e) // Home Button 
    { 
     pageTransition1.Visibility = System.Windows.Visibility.Hidden; 
     pageTransition1.IsEnabled = false; 
     grid1.Visibility = System.Windows.Visibility.Visible; 
    } 

基本上,我只希望用戶控制網頁上停止運行(COS它在後臺運行)當我單擊主頁按鈕。

我如何在我的用戶控制網頁::

  mediaElement1.LoadedBehavior = MediaState.Manual; 
     mediaElement1.Source = new Uri(audioNames[iCurrentImageCount], UriKind.RelativeOrAbsolute); 
     mediaElement1.Play(); 

 MediaPlayer ap = new MediaPlayer(); 
     recordedaudio = System.IO.Directory.GetFiles(@"../../Audio/", "*.wav"); 
     if (recordedaudio == null) 
     { MessageBox.Show("No Recorded Files!"); } 
     else 
     { 
      ap.Open(new Uri(recordedaudio[iCurrentImageCount], UriKind.RelativeOrAbsolute)); 
      ap.Play(); 
     } 
+0

您是否可以使用.Net 4.5?如果是,我會提供一個列表與異步/等待 –

+0

這不能在4.0中完成? – user2376998

+0

你是什麼意思?爲什麼它不能在.Net 4.0中完成? –

回答

0

一個解決方案發揮出自己的聲音是處理用戶控件頁面卸載的事件,並停止播放媒體。

+0

你能舉一個例子來處理,請 – user2376998

+0

private void Grid_Unloaded(object sender,RoutedEventArgs e) { ap.Stop(); ap.Close(); }只有在您加載和卸載頁面時,此代碼才能正常工作。如果您只是更改可見性,請使用IsVisibleChanged事件。 –

+0

所以它的東西就像UserControlPage_IsVisibleChanged(對象發件人,RoutedEventArgs e)? – user2376998

相關問題