Windows runtime 如何判断控件是否不再对用户可见?

Windows runtime 如何判断控件是否不再对用户可见?,windows-runtime,Windows Runtime,我有一个控件,可以在其中重复运行一些动画(例如DoubleAnimation)。我是否可以检测我的控件是否不再对用户可见?例如,它被滚动离开,用户向前导航到另一个页面,或者它被其他控件遮挡。 我不想运行这些动画,除非至少我的控件的某些部分对用户可见。您可以分析视觉树,或者从控件坐标到屏幕坐标进行转换,以查看其位置是否在视图端口内,还可以检查不透明度,可视化树路径下控件的可视性等,但这是如此密集的处理,因此不值得为通用解决方案一直这样做 唯一有意义的事情是处理ScrollViewer.ViewCh

我有一个控件,可以在其中重复运行一些动画(例如DoubleAnimation)。我是否可以检测我的控件是否不再对用户可见?例如,它被滚动离开,用户向前导航到另一个页面,或者它被其他控件遮挡。
我不想运行这些动画,除非至少我的控件的某些部分对用户可见。

您可以分析视觉树,或者从控件坐标到屏幕坐标进行转换,以查看其位置是否在视图端口内,还可以检查不透明度,可视化树路径下控件的可视性等,但这是如此密集的处理,因此不值得为通用解决方案一直这样做


唯一有意义的事情是处理
ScrollViewer.ViewChanged
事件,并检查偏移量是否使其可见,同时将
TransformToVisual
VisualTreeHelper
调用仅限于
ScrollViewer
中的实际布局更改的时间。

内置的或易于实现的东西,轻量级的东西。我将在用户导航到另一个页面时停止动画。谢谢你的回复!