Redigera

Dela via


RenderOptions.CacheInvalidationThresholdMaximum Attached Property

Definition

Gets or sets the cache invalidation threshold maximum value for a given DependencyObject.

see GetCacheInvalidationThresholdMaximum, and SetCacheInvalidationThresholdMaximum
see GetCacheInvalidationThresholdMaximum, and SetCacheInvalidationThresholdMaximum
see GetCacheInvalidationThresholdMaximum, and SetCacheInvalidationThresholdMaximum

Examples

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

<DrawingBrush x:Key="drawingBrush"
              RenderOptions.CachingHint="Cache"
              RenderOptions.CacheInvalidationThresholdMaximum="2.0"
              RenderOptions.CacheInvalidationThresholdMinimum="0.5">
    <DrawingBrush.Drawing>
        <GeometryDrawing Brush="Blue">
            <GeometryDrawing.Geometry>
                <GeometryGroup>
                    <EllipseGeometry RadiusX="20" RadiusY="20" Center="10,10" />
                </GeometryGroup>
            </GeometryDrawing.Geometry>
            <GeometryDrawing.Pen>
                <Pen Thickness="10" Brush="Black" />
            </GeometryDrawing.Pen>
        </GeometryDrawing>
    </DrawingBrush.Drawing>
</DrawingBrush>

Remarks

This attached property is supported by TileBrush and its derived types. It is intended to be used with brushes that have intermediate surfaces, such as DrawingBrush and VisualBrush. It only has an effect when the CachingHint property is set to Cache.

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 the content 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 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 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.

To access this property in code, use the GetCacheInvalidationThresholdMaximum and SetCacheInvalidationThresholdMaximum methods.

Dependency Property Information

Identifier field CacheInvalidationThresholdMaximumProperty
Metadata properties set to true None

Applies to

See also