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{});
canvas1->CacheMode = ref new BitmapCache();

如果不先进行测试和分析,通常不要将 CacheMode 值应用于元素。 缓存到图形处理单元 (GPU) 仅适用于应用的少数可能的呈现情况,并且预期你将分析 UI 中应用 CacheMode 设置的时间和位置的各种组合。 过度使用 CacheMode 可能会损害性能,而不是帮助性能。 最好是分析应用外围应用,以确定渲染成本最高的目标区域,并基于这些结果尝试仅缓存某些元素。 有关如何分析呈现的详细信息,请参阅优化 XAML 标记主题的 IsOverdrawHeatMapEnabled 和“缓存静态内容”部分。

避免同时使用 CacheMode 和情节提要动画。 缓存 不透明度RenderTransform 动画的内容会导致动画成为依赖动画,即使动画的持续时间为零。 若要查看这些动画的运行,则必须将 EnableDependentAnimation 设置为 true,并且依赖动画通常会使缓存合成获得的所有性能提升失效。 不透明度 通常由控件模板中的视觉状态进行动画处理,因此即使你未在 XAML 页面中声明任何自己的情节提要动画,这也是一个考虑因素。

适用于

另请参阅