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{});
canvas1->CacheMode = ref new BitmapCache();
一般而言,請勿在不需要先測試和分析的情況下,將 CacheMode 值套用至元素。 快取至圖形處理單元 (GPU) 僅適用于應用程式可能轉譯的情況,而且預期您會分析 UI 中套用 CacheMode 設定之時機和位置的各種組合。 過度使用 CacheMode 可能會損害效能,而不是協助。 最好分析應用程式介面區,以判斷哪些目的地區域最耗費資源來轉譯,並實驗只根據這些結果快取特定元素。 如需如何分析轉譯的詳細資訊,請參閱優化 XAML 標記主題的IsOverdrawHeatMapEnabled和「快取靜態內容」一節。
請避免同時使用 CacheMode 和分鏡腳本動畫。 快取 不透明度 或 RenderTransform 的動畫內容會導致動畫變成相依動畫,即使動畫為零持續時間也一樣。 即使看到這些動畫執行,您都必須將 EnableDependentAnimation 設定為 true,而相依動畫通常會使您可能從快取組合取得的所有效能提升失效。 不透明度 通常是由控制項範本中的視覺狀態產生動畫效果,因此即使您未在 XAML 頁面中宣告任何自己的腳本動畫,也是一個考慮。