2013-07-19 4 views
0

У меня есть элемент управления переходом страницы в MainWindow (несколько кнопок и кнопка дома, ведущая на главную страницу), поэтому я нажимаю кнопку на MainWindow, которая выводит пользовательскую страницу управления внутри переходе страницы в MainWindow, theres звук, который будет воспроизводиться на этой странице управления пользователями, хорошо, но когда я нажимаю кнопку «Главная», чтобы показать домашнюю страницу, звук с этой пользовательской контрольной страницы все еще воспроизводится. Как я могу остановить работу пользовательской страницы управления в фоновом режиме?Как отключить управление, выполняющееся в фоновом режиме

это, как я называю страницу пользовательского элемента управления в элементе управления страницей перехода в главном окне:

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; 
    } 

В основном я просто хочу, страница управления пользователя остановить работу (потому ее работает в фоновом режиме), когда я нажмите кнопку «Домой».

Как я играть мой звук на моей странице управления пользователя ::

  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? Если да, я предоставил листинг с Async/Await –

+0

, это невозможно сделать в 4.0? – user2376998

+0

Что это значит? почему это невозможно сделать в .Net 4.0? –

ответ

0

Одно из решений для обработки выгружен события на странице управления пользователя и остановки воспроизведения медиа.

+0

Не могли бы вы показать пример по обработке, пожалуйста, – user2376998

+0

private void Grid_Unloaded (отправитель объекта, RoutedEventArgs e) { ap.Stop(); ap.Close(); } Этот код будет работать только в том случае, если вы загружаете и выгружаете страницу. Если вы просто меняете видимость, используйте событие IsVisibleChanged. –

+0

так что-то вроде, если UserControlPage_IsVisibleChanged (отправитель объекта, RoutedEventArgs e)? – user2376998