wha*_*hat 5 c# wpf user-controls
我有一些用户控制页面和一个MainWindow,所以我想将用户控制页面设置为隐藏,一旦隐藏,它就会停止播放音频
我知道我必须对IsVisibleChanged事件采取一些措施,但我仍然坚持如何启动它?
这是这样的吗?
(pagename).IsVisibleChanged(object sender , RoutedEventArgs e )
{ ap.Stop() }
Run Code Online (Sandbox Code Playgroud)
因为我的用户控制网页(我使用自定义控制在主窗口中显示它)是我的主窗口和用户控制网页有一定的音频播放,当我点击home键驻留在主窗口,我将设置用户控件页面隐藏并显示我的主页,但现在当它被隐藏时,该页面的音频仍然在播放,所以我去询问并且有人说在用户控制页面中使用IsVisibleChanged事件(播放音频的1)但是我陷入困境,我怎么写它,因为我是新手.
kma*_*zek 12
第一解决方案
您应该使用DependencyPropertyChangedEventArgs第二个参数,并且应该检查NewValue指示页面是否可见的属性(msdn).
例:
void (pagename)_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (!((bool)e.NewValue))
{
ap.Stop();
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,您可以找到示例解决方案(IsVisibleChangedExample).
二解决方案:
如果您使用MediaElement(msdn)播放音乐,则应使用两个属性:
LoadedBehavior(msdn)和UnloadedBehavior(msdn).
例:
<MediaElement Name="me" Source="path to your music file"
LoadedBehavior="Play" UnloadedBehavior="Stop" Volume="100" />
Run Code Online (Sandbox Code Playgroud)