0

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

4

1 回答 1

0

您可以分析视觉树或从控件坐标转换到屏幕坐标,以查看其位置是否在视口内,还可以检查视觉树路径下控件的不透明度、可见性等内容,但这需要大量处理不值得一直为一个通用的解决方案做。

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

于 2013-04-15T16:18:35.233 回答