BitmapCache Class

 

Creates and caches a bitmap representation of a UIElement.

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

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Freezable
        System.Windows.Media.Animation.Animatable
          System.Windows.Media.CacheMode
            System.Windows.Media.BitmapCache

[<Sealed>]
type BitmapCache = 
    class
        inherit CacheMode
    end

NameDescription
System_CAPS_pubmethodBitmapCache()

Initializes a new instance of the BitmapCache class.

System_CAPS_pubmethodBitmapCache(Double)

Initializes a new instance of the BitmapCache class with the specified scale.

NameDescription
System_CAPS_pubpropertyCanFreeze

Gets a value that indicates whether the object can be made unmodifiable. (Inherited from Freezable.)

System_CAPS_pubpropertyDependencyObjectType

Gets the DependencyObjectType that wraps the CLR type of this instance. (Inherited from DependencyObject.)

System_CAPS_pubpropertyDispatcher

Gets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.)

System_CAPS_pubpropertyEnableClearType

Gets or sets a value that indicates whether the bitmap is rendered with ClearType activated.

System_CAPS_pubpropertyHasAnimatedProperties

Gets a value that indicates whether one or more AnimationClock objects is associated with any of this object's dependency properties.(Inherited from Animatable.)

System_CAPS_pubpropertyIsFrozen

Gets a value that indicates whether the object is currently modifiable. (Inherited from Freezable.)

System_CAPS_pubpropertyIsSealed

Gets a value that indicates whether this instance is currently sealed (read-only).(Inherited from DependencyObject.)

System_CAPS_pubpropertyRenderAtScale

Gets or sets a value that indicates the scale that is applied to the bitmap.

System_CAPS_pubpropertySnapsToDevicePixels

Gets or sets a value that indicates whether the bitmap is rendered with pixel snapping.

NameDescription
System_CAPS_pubmethodApplyAnimationClock(DependencyProperty, AnimationClock)

Applies an AnimationClock to the specified DependencyProperty. If the property is already animated, the SnapshotAndReplace handoff behavior is used.(Inherited from Animatable.)

System_CAPS_pubmethodApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Applies an AnimationClock to the specified DependencyProperty. If the property is already animated, the specified HandoffBehavior is used.(Inherited from Animatable.)

System_CAPS_pubmethodBeginAnimation(DependencyProperty, AnimationTimeline)

Applies an animation to the specified DependencyProperty. The animation is started when the next frame is rendered. If the specified property is already animated, the SnapshotAndReplace handoff behavior is used.(Inherited from Animatable.)

System_CAPS_pubmethodBeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Applies an animation to the specified DependencyProperty. The animation is started when the next frame is rendered. If the specified property is already animated, the specified HandoffBehavior is used. (Inherited from Animatable.)

System_CAPS_pubmethodCheckAccess()

Determines whether the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.)

System_CAPS_pubmethodClearValue(DependencyProperty)

Clears the local value of a property. The property to be cleared is specified by a DependencyProperty identifier. (Inherited from DependencyObject.)

System_CAPS_pubmethodClearValue(DependencyPropertyKey)

Clears the local value of a read-only property. The property to be cleared is specified by a DependencyPropertyKey. (Inherited from DependencyObject.)

System_CAPS_pubmethodClone()

Creates a modifiable clone of the BitmapCache, making deep copies of the object's values. When copying the object's dependency properties, this method copies expressions (which might no longer resolve) but not animations or their current values.

System_CAPS_pubmethodCloneCurrentValue()

Creates a modifiable clone (deep copy) of the BitmapCache using its current values.

System_CAPS_pubmethodCoerceValue(DependencyProperty)

Coerces the value of the specified dependency property. This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.(Inherited from DependencyObject.)

System_CAPS_pubmethodEquals(Object)

Determines whether a provided DependencyObject is equivalent to the current DependencyObject.(Inherited from DependencyObject.)

System_CAPS_pubmethodFreeze()

Makes the current object unmodifiable and sets its IsFrozen property to true. (Inherited from Freezable.)

System_CAPS_pubmethodGetAnimationBaseValue(DependencyProperty)

Returns the non-animated value of the specified DependencyProperty.(Inherited from Animatable.)

System_CAPS_pubmethodGetAsFrozen()

Creates a frozen copy of the Freezable, using base (non-animated) property values. Because the copy is frozen, any frozen sub-objects are copied by reference. (Inherited from Freezable.)

System_CAPS_pubmethodGetCurrentValueAsFrozen()

Creates a frozen copy of the Freezable using current property values. Because the copy is frozen, any frozen sub-objects are copied by reference.(Inherited from Freezable.)

System_CAPS_pubmethodGetHashCode()

Gets a hash code for this DependencyObject.(Inherited from DependencyObject.)

System_CAPS_pubmethodGetLocalValueEnumerator()

Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject. (Inherited from DependencyObject.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodGetValue(DependencyProperty)

Returns the current effective value of a dependency property on this instance of a DependencyObject. (Inherited from DependencyObject.)

System_CAPS_pubmethodInvalidateProperty(DependencyProperty)

Re-evaluates the effective value for the specified dependency property(Inherited from DependencyObject.)

System_CAPS_pubmethodReadLocalValue(DependencyProperty)

Returns the local value of a dependency property, if it exists. (Inherited from DependencyObject.)

System_CAPS_pubmethodSetCurrentValue(DependencyProperty, Object)

Sets the value of a dependency property without changing its value source. (Inherited from DependencyObject.)

System_CAPS_pubmethodSetValue(DependencyProperty, Object)

Sets the local value of a dependency property, specified by its dependency property identifier. (Inherited from DependencyObject.)

System_CAPS_pubmethodSetValue(DependencyPropertyKey, Object)

Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property. (Inherited from DependencyObject.)

System_CAPS_protmethodShouldSerializeProperty(DependencyProperty)

Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.(Inherited from DependencyObject.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

System_CAPS_pubmethodVerifyAccess()

Enforces that the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.)

NameDescription
System_CAPS_pubfieldSystem_CAPS_staticEnableClearTypeProperty

Identifies the EnableClearType dependency property.

System_CAPS_pubfieldSystem_CAPS_staticRenderAtScaleProperty

Identifies the RenderAtScale dependency property.

System_CAPS_pubfieldSystem_CAPS_staticSnapsToDevicePixelsProperty

Identifies the SnapsToDevicePixels dependency property.

NameDescription
System_CAPS_pubeventChanged

Occurs when the Freezable or an object it contains is modified. (Inherited from Freezable.)

Use the BitmapCache class to improve rendering performance of a complex UIElement. Create a BitmapCache and assign it to the CacheMode property of a UIElement to cache the element and its subtree as a bitmap in video memory. This is useful when you need to animate, translate, or scale a UIElement as quickly as possible. This approach enables a tradeoff between performance and visual quality while content is cached.

Use the BitmapCacheBrush class to efficiently reuse a cached element.

Set the RenderAtScale property to scale the bitmap cache. This is useful if an element will be zoomed, and you want the element to render more clearly than it would if the cache were simply generated at the element’s native resolution.

Set the SnapsToDevicePixels property when the cache displays content that requires pixel-alignment to render correctly, such as ClearType text. This property is ignored by the BitmapCacheBrush and Viewport2DVisual3D classes.

Caching a control does not affect mouse-over behavior, so mouse-over hit testing operates as if it the bitmap were a live control.

Cache regeneration occurs only when the structure of the UIElement or its subtree changes, or when the CacheMode settings change. Setting the RenderAtScale or EnableClearType properties causes cache regeneration. Changes to the parent visual tree of the cached UIElement, such as transforms, scales, opacities, and effects, do not affect the cache.

The cache functions when hardware acceleration is not available. In this case, the bitmap is rendered in software, and the maximum bitmap dimensions are 2048 x 2048.

System_CAPS_noteNote

RenderOptions and TextOptions do not propagate through a cached element. You may have to set these options again in child elements below the cache.

The following XAML shows how to cache a Canvas element. For the complete code example, see How to: Improve Rendering Performance by Caching an Element.

<!-- //////////////////////////////////////////////////////////////// -->
<!-- // The following XAML creates a BitmapCache with default      // -->
<!-- // properties and assigns it as the CacheMode for the canvas. // -->
<!-- //////////////////////////////////////////////////////////////// -->
<Canvas.CacheMode>
    <BitmapCache EnableClearType="False" 
                 RenderAtScale="1" 
                 SnapsToDevicePixels="False"  />
</Canvas.CacheMode>

.NET Framework
Available since 4.0
Silverlight
Available since 3.0
Windows Phone Silverlight
Available since 7.0

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: