BitmapCache Class

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Represents the behavior of caching a visual element or tree of elements as bitmap surfaces. This can yield significant performance improvements for some scenarios.

Inheritance Hierarchy

System.Object
  System.Windows.DependencyObject
    System.Windows.Media.CacheMode
      System.Windows.Media.BitmapCache

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

Syntax

'Declaration
Public NotInheritable Class BitmapCache _
    Inherits CacheMode
public sealed class BitmapCache : CacheMode
<BitmapCache .../>

The BitmapCache type exposes the following members.

Constructors

  Name Description
Public methodSupported by Silverlight for Windows Phone BitmapCache Initializes a new instance of the BitmapCache class.

Top

Properties

  Name Description
Public propertySupported by Silverlight for Windows Phone Dispatcher Gets the Dispatcher this object is associated with. (Inherited from DependencyObject.)
Public propertySupported by Silverlight for Windows Phone RenderAtScale Gets or sets the scale at which the object is rendered on the cached bitmap surface. Use this property for cached objects that are scaled to improve performance.

Top

Methods

  Name Description
Public methodSupported by Silverlight for Windows Phone CheckAccess Determines whether the calling thread has access to this object. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone ClearValue Clears the local value of a dependency property. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by Silverlight for Windows Phone Finalize Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by Silverlight for Windows Phone GetAnimationBaseValue Returns any base value established for a Silverlight dependency property, which would apply in cases where an animation is not active. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public methodSupported by Silverlight for Windows Phone GetType Gets the Type of the current instance. (Inherited from Object.)
Public methodSupported by Silverlight for Windows Phone GetValue Returns the current effective value of a dependency property from a DependencyObject. (Inherited from DependencyObject.)
Protected methodSupported by Silverlight for Windows Phone MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by Silverlight for Windows Phone ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone SetValue Sets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone ToString Returns a string that represents the current object. (Inherited from Object.)

Top

Fields

  Name Description
Public fieldStatic memberSupported by Silverlight for Windows Phone RenderAtScaleProperty Identifies the RenderAtScale dependency property.

Top

Remarks

In order to enable caching, you must enable composition caching at the plug-in level by setting the value of an EnableGPUAccelerationparam element to true as part of the object tag that declares the Silverlight plug-in.

Using cached composition, you can cache visual elements as bitmaps after the first time they render. Once an object or tree of objects has been cached as a bitmap, it no longer goes through the render phase as the application refreshes, rather, just the cached bitmap is rendered. Such cached bitmap swapping can take advantage of hardware acceleration from the user’s GPU, which can yield significant performance improvements for some scenarios. To use hardware acceleration in Silverlight effectively, you should understand how Silverlight uses hardware acceleration and cached composition in its architecture and rendering pipeline, and which Silverlight objects can benefit under hardware acceleration/cached composition. For more information, see Silverlight Hardware Acceleration.

NoteNote:

Out-of-browser applications do not have editable hosting HTML. To enable GPU acceleration for an out-of-browser application, set the attribute EnableGPUAcceleration to true on the OutOfBrowserSettings element that you declare in your Deployment XAML file.

Note   Silverlight for Windows Phone has different hardware considerations for its graphics support. For more information, see Graphics in Silverlight for Windows Phone.

Examples

Before you can use the CacheMode property and a BitmapCache value, you must enable the GPU acceleration feature at the plug-in level (in the HTML) by setting the value of an EnableGPUAcceleration parameter to "true".

<param name="EnableGPUAcceleration" value="true" />

The following XAML uses a BitmapCache to set CacheMode for a MediaElement.

<MediaElement>
  <MediaElement.CacheMode>
    <BitmapCache RenderAtScale="4"/>
  </ MediaElement.CacheMode>
</MediaElement>

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Thread Safety

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