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 頁面中宣告任何自己的腳本動畫,也是一個考慮。

適用於

另請參閱