UIElement.CacheMode 属性

定义

获取或设置一个值,该值指示应尽可能将呈现的内容缓存为复合位图。

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 值,则 RenderTransformOpacity 中的呈现操作将在图形处理单元上执行, (GPU) (如果可用)。 默认值为 null,它不启用缓存组合模式。

注解

设置此值以启用将 RenderTransformOpacity 位图卸载到图形处理单元的缓存行为, (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 和情节提要动画。 缓存 对 OpacityRenderTransform 进行动画处理的内容会导致动画成为依赖动画,即使动画持续时间为零。 若要查看这些动画的运行,必须设置为 EnableDependentAnimationtrue,并且依赖动画通常会使缓存合成获得的所有性能提升失效。 不透明度 通常由控件模板中的视觉状态进行动画处理,因此即使你未在 XAML 页面中声明任何自己的情节提要动画,这也是一个考虑因素。

适用于

另请参阅