Export (0) Print
Expand All
Expand Minimize

CachingHint Enumeration

Specifies whether to cache tiled brush objects.

Namespace:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)

public enum CachingHint
<object property="enumerationMemberName" .../>

Member nameDescription
CacheCache the tiled brush objects in an off-screen buffer, using the caching hints specified by the RenderOptions settings.
UnspecifiedNo caching hints are specified.

By default, WPF does not cache the rendered contents of DrawingBrush and VisualBrush objects. In static scenarios where neither the contents nor the use of the brush in the scene is changing, not caching provides a benefit because it conserves video memory. When a brush with static content is used in a non-static way, the default behavior of WPF is to re-render the entire content of the brush every frame, even though the content is unchanging. For example, this will happen when a static DrawingBrush or VisualBrush is mapped to the surface of a rotating 3D object. Re-rendering the static content can have a negative impact on performance.

By setting the CachingHint attached property on the brush to Cache, you can increase performance by using cached versions of the tiled brush objects.

The CacheInvalidationThresholdMinimum and CacheInvalidationThresholdMaximum property values are relative size values that determine when the TileBrush object should be regenerated due to changes in scale. For example, by setting the CacheInvalidationThresholdMaximum property to 2.0, the cache for the TileBrush only needs to be regenerated when its size exceeds twice the size of the current cache.

The following example shows how to use the caching hint option for a DrawingBrush.

DrawingBrush drawingBrush = new DrawingBrush();

// Set the caching hint option for the brush.
RenderOptions.SetCachingHint(drawingBrush, CachingHint.Cache);

// Set the minimum and maximum relative sizes for regenerating the tiled brush. 
// The tiled brush will be regenerated and re-cached when its size is 
// 0.5x or 2x of the current cached size.
RenderOptions.SetCacheInvalidationThresholdMinimum(drawingBrush, 0.5);
RenderOptions.SetCacheInvalidationThresholdMaximum(drawingBrush, 2.0);

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft