Поделиться через


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, операции отрисовки из RenderTransform и Opacity выполняются в графическом процессоре (GPU), если они доступны. Значение по умолчанию — null, которое не включает режим кэширования композиции.

Комментарии

Задайте это значение, чтобы включить поведение кэширования, которое разгружает растровые изображения RenderTransform и Opacity в графический процессор (GPU). В противном случае оставьте значение null.

Для XAML строковый литерал "BitmapCache" является единственным включенным значением, которое можно использовать для задания CacheMode в качестве атрибута.

Примечание

BitmapCache — это единственный существующий практический производный класс в API среда выполнения Windows, который обеспечивает такое поведение (тип 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) предназначено только для небольшой части возможных ситуаций отрисовки для приложения. Ожидается, что вы профилируете различные сочетания времени и места в пользовательском интерфейсе для применения CacheMode параметра. Чрезмерное использование CacheMode может повредить производительность, а не помочь ей. Лучше всего профилировать поверхность приложения, чтобы определить, какие целевые области являются наиболее дорогими для отрисовки, и поэкспериментировать с кэшированием только определенных элементов на основе этих результатов. Дополнительные сведения о профилирование для отрисовки см. в разделе "Кэширование статического содержимого" статьи Оптимизация разметки XAML .

Избегайте совместного использования CacheMode и раскадровки анимации. Кэширование содержимого, в котором анимируются Opacity или RenderTransform , приводит к тому, что анимация становится зависимой анимацией, даже если анимация имеет нулевое значение. Чтобы даже просмотреть эти анимации, необходимо задать для параметра значение EnableDependentAnimationtrue, а зависимая анимация обычно делает недействительными все преимущества производительности, которые вы можете получить от кэширования композиции. Непрозрачность часто анимируется визуальными состояниями в шаблонах элементов управления, поэтому это следует учитывать, даже если вы не объявляете какие-либо собственные раскадровки анимации на страницах XAML.

Применяется к

См. также раздел