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

时间:2013-04-15 13:23:24

标签: windows-runtime

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

1 个答案:

答案 0 :(得分:0)

您可以分析可视化树或获取从控制坐标到屏幕坐标的变换,以查看其位置是否在视口内,还可以检查视觉树路径下控件的不透明度,可见性等内容,但这是如此处理密集,以至于不值得一直做一般解决方案。

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