WPF C#用户控制页面IsVisibleChanged事件

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)