Edit

Share via


RenderOptions.SetCachingHint(DependencyObject, CachingHint) Method

Definition

Sets the value of the CachingHint attached property on a specified dependency object.

public:
 static void SetCachingHint(System::Windows::DependencyObject ^ target, System::Windows::Media::CachingHint cachingHint);
public static void SetCachingHint (System.Windows.DependencyObject target, System.Windows.Media.CachingHint cachingHint);
static member SetCachingHint : System.Windows.DependencyObject * System.Windows.Media.CachingHint -> unit
Public Shared Sub SetCachingHint (target As DependencyObject, cachingHint As CachingHint)

Parameters

target
DependencyObject

The dependency object on which to set the value of the CachingHint property.

cachingHint
CachingHint

The new value to set the property to.

Exceptions

The specified target is null.

Examples

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);
Dim drawingBrush As 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)

Remarks

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 all the 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 of 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 because of changes in scale. For example, when the CacheInvalidationThresholdMaximum property is set to 2.0, the cache for the TileBrush needs to be regenerated only when its size exceeds two times the size of the current cache.

Use this method to set the CachingHint attached property in code.

Applies to

See also