C# 如何禁用在后台运行的控件
我在主窗口中有一个页面转换控件(有几个按钮和一个主页按钮可通向主页),因此我单击主窗口上的一个按钮,可在主窗口中的页面转换中显示一个用户控件页面,在该用户控件页面中可播放音频,好的,但是当我点击主页按钮显示主页时,来自用户控制页面的音频仍在播放。如何停止用户控件页在后台运行 以下是我如何将用户控件页面调用到主窗口中的页面转换控件中:C# 如何禁用在后台运行的控件,c#,wpf,button,panel,mainwindow,C#,Wpf,Button,Panel,Mainwindow,我在主窗口中有一个页面转换控件(有几个按钮和一个主页按钮可通向主页),因此我单击主窗口上的一个按钮,可在主窗口中的页面转换中显示一个用户控件页面,在该用户控件页面中可播放音频,好的,但是当我点击主页按钮显示主页时,来自用户控制页面的音频仍在播放。如何停止用户控件页在后台运行 以下是我如何将用户控件页面调用到主窗口中的页面转换控件中: private void button2_Click(object sender, RoutedEventArgs e) // Story {
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;
}
基本上,当我点击home按钮时,我只希望用户控制页面停止运行(因为它在后台运行)
如何在“用户控制”页面中播放声音:
mediaElement1.LoadedBehavior = MediaState.Manual;
mediaElement1.Source = new Uri(audioNames[iCurrentImageCount], UriKind.RelativeOrAbsolute);
mediaElement1.Play();
及
一种解决方案是在用户控制页中处理卸载的事件并停止播放媒体。您可以使用.Net 4.5吗?如果是,我将提供一个包含Async/Await的列表,这在4.0中无法实现?你是什么意思?为什么不能在.Net 4.0中完成?我使用的是.Net 4.0,因此解决方案只能在4.5中完成?能否提供更多关于如何在用户页面中播放声音的代码?private void Grid_Unloaded(object sender,RoutedEventArgs e){ap.Stop();ap.Close();}此代码仅在加载和卸载页面时有效。如果您只是在更改可见性,请使用IsVisibleChanged事件。因此,这类似于如果UserControlPage\u IsVisibleChanged(对象发送方,RoutedEventArgs e)?
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();
}