1

我想问一下当我们对应用程序进行编程时,对象在我们的手机中是如何表现的。

假设我们有一些椭圆、正方形围绕一个点旋转,也就是说,有一个图形动画,其中所有动画都应该是一个对象,如 XAML。

如果我们制作这个动画 Visibility="Collapsed"; 手机CPU会做什么?它是否仍然在CPU中工作而不显示在屏幕上,或者它进入硬盘驱动器或其他东西的挂起状态,或者换句话说,任何可见性折叠对象,包括按钮,网页,动画等。消耗CPU,因此,电池就像可见性=“可见”时会这样做吗?

谢谢你提前给我启发。

4

1 回答 1

2

有两种方法可以在屏幕上隐藏对象

可见性属性

当该Visibility属性设置为 时Collapsed,XAML 不会在可视内存中保存该元素的任何可视数据,并且不会执行与该元素相关的任何处理。设置VisibilityVisible, 将绘制可视化树的内容并且元素是完整的。

不透明度Opacity当您使用位图缓存时,您 可以通过操纵元素的属性来提高应用程序的性能。位图缓存允许在第一次渲染后将视觉元素存储为位图。缓存元素后,应用程序会绕过缓存视觉元素的渲染阶段,而是显示存储的位图。当您将缓存元素的不透明度设置为 0 时,该元素的位图表示将保存在内存中。建议在混合、变换(平移、拉伸、旋转)的场景中使用 BitmapCaching(将CacheMode属性设置为 )。BitmapCache

除了 UI 线程,WP 还支持组合线程。UI 线程将从 XAML 解析和创建对象,在第一次绘制所有视觉对象时绘制它们,并处理每帧回调并执行其他用户代码。合成线程组合图形纹理并将它们传递给 GPU 进行绘制。对于故事板驱动的动画也有一些优化。

维护轻量级 UI 线程是编写响应式应用程序的关键。

于 2013-06-07T11:54:50.087 回答