UIElement.CacheMode 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示应尽可能将呈现的内容缓存为复合位图。
public:
property CacheMode ^ CacheMode { CacheMode ^ get(); void set(CacheMode ^ value); };
CacheMode CacheMode();
void CacheMode(CacheMode value);
public CacheMode CacheMode { get; set; }
var cacheMode = uIElement.cacheMode;
uIElement.cacheMode = cacheMode;
Public Property CacheMode As CacheMode
<uiElement CacheMode="BitmapCache" />
属性值
一个 值,该值指示应尽可能将呈现的内容缓存为复合位图。 如果指定 CacheMode 值,则 RenderTransform 和 Opacity 中的呈现操作将在图形处理单元上执行, (GPU) (如果可用)。 默认值为 null
,它不启用缓存组合模式。
注解
设置此值以启用将 RenderTransform 和 Opacity 位图卸载到图形处理单元的缓存行为, (GPU) 。 否则,请将其保留为 null
。
对于 XAML,字符串文本“BitmapCache”是唯一可用于设置为 CacheMode
特性的已启用值。
注意
BitmapCache 是 Windows 运行时 API 中唯一的可启用此行为的实际派生类, (CacheMode 类型是一种仅出于基础结构和旧) 原因而存在的中间类型。
如果在代码中设置 CacheMode
,请将其设置为 BitmapCache 的新值,如下所示:
<Canvas x:Name="canvas1"/>
canvas1.CacheMode = new BitmapCache();
#include <winrt/Windows.UI.Xaml.Media.h>
...
canvas1().CacheMode(Windows::UI::Xaml::Media::BitmapCache{});
通常不要在没有先进行测试和分析的情况下将值应用于 CacheMode
元素。 缓存到图形处理单元 (GPU) 仅适用于应用的少数可能呈现情况,并且预期你将在 UI CacheMode
中分析应用设置的时间和地点的各种组合。 过度使用 CacheMode
可能会损害性能,而不是帮助性能。 最好分析应用外围应用区域,以确定呈现成本最高的目标区域,并尝试基于这些结果仅缓存某些元素。 有关如何分析呈现的详细信息,请参阅 优化 XAML 标记 主题的“缓存静态内容”部分。
避免同时使用 CacheMode 和情节提要动画。 缓存 对 Opacity 或 RenderTransform 进行动画处理的内容会导致动画成为依赖动画,即使动画持续时间为零。 若要查看这些动画的运行,必须设置为 EnableDependentAnimation
true
,并且依赖动画通常会使缓存合成获得的所有性能提升失效。
不透明度 通常由控件模板中的视觉状态进行动画处理,因此即使你未在 XAML 页面中声明任何自己的情节提要动画,这也是一个考虑因素。