Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF C#用户控件页可见已更改事件_C#_Wpf_User Controls - Fatal编程技术网

WPF C#用户控件页可见已更改事件

WPF C#用户控件页可见已更改事件,c#,wpf,user-controls,C#,Wpf,User Controls,我有一些用户控制页面和一个主窗口,所以我想将用户控制页面设置为隐藏,一旦它被隐藏,它就会停止播放音频 我知道我必须对IsVisibleChanged事件做些什么,但我被困在了如何启动它的问题上 是这样的吗 (pagename).IsVisibleChanged(object sender , RoutedEventArgs e ) { ap.Stop() } 因为我的用户控件页(我使用自定义控件在主窗口中显示)在我的主窗口中,并且用户控件页有一些音频播放,当我单击主窗口上的主页按钮时

我有一些用户控制页面和一个主窗口,所以我想将用户控制页面设置为隐藏,一旦它被隐藏,它就会停止播放音频

我知道我必须对IsVisibleChanged事件做些什么,但我被困在了如何启动它的问题上

是这样的吗

(pagename).IsVisibleChanged(object sender , RoutedEventArgs e )
 {    ap.Stop()  }
因为我的用户控件页(我使用自定义控件在主窗口中显示)在我的主窗口中,并且用户控件页有一些音频播放,当我单击主窗口上的主页按钮时,我会将用户控件页设置为隐藏并显示我的主页,但现在当它隐藏时,该页面的音频仍在播放,因此我去询问,一些人说用户控制页面(播放音频的1)中的use IsVisibleChanged事件,但我甚至被困在如何编写它,因为我是新手

第一种解决方案:

您应该使用
dependencPropertyChangedEventArgs
作为第二个参数,并且应该检查指示页面是否可见的
NewValue
属性()

例如:

void (pagename)_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
    if (!((bool)e.NewValue))
    {
        ap.Stop();
    }
}
<MediaElement Name="me" Source="path to your music file" 
              LoadedBehavior="Play" UnloadedBehavior="Stop" Volume="100" />
您可以找到示例解决方案(IsVisibleChangedExample)

第二种解决方案:

如果使用
MediaElement
()播放音乐,则应使用两个属性:
LoadedBehavior
()和
UnloadedBehavior
()

例如:

void (pagename)_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
    if (!((bool)e.NewValue))
    {
        ap.Stop();
    }
}
<MediaElement Name="me" Source="path to your music file" 
              LoadedBehavior="Play" UnloadedBehavior="Stop" Volume="100" />


您好,谢谢您的回复和宝贵时间。我对编程和WPF C#都是新手,想详细介绍一下吗?我真的不明白你的意思,但是假设用户控件页在主窗口的另一个自定义控件中,但我只将该自定义控件设置为隐藏,它会检测到用户控件页也隐藏了,还是只检测到我将其设置为隐藏的特定控件。这是因为我将自定义控件设置为隐藏,但用户控件页在其中。对不起,我的英语很差,希望你能理解:)我应该在哪里使用你上面的代码?在用户控制页面中?感谢您澄清我的疑问,请原谅我连珠炮似的提问,真的很抱歉。@user2601570再次检查我的答案:)我的visual studio与示例文件不兼容。然而,“玩”就是玩,“停”就是停?它如何检测它是否被卸载,因为我只将它设置为隐藏在控件中。