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