BitmapCache Clase

Definición

Crea y almacena en caché una representación del mapa de bits de UIElement.Creates and caches a bitmap representation of a UIElement.

public ref class BitmapCache sealed : System::Windows::Media::CacheMode
public sealed class BitmapCache : System.Windows.Media.CacheMode
type BitmapCache = class
    inherit CacheMode
Public NotInheritable Class BitmapCache
Inherits CacheMode
Herencia

Ejemplos

En el código XAML siguiente se muestra cómo Canvas almacenar en caché un elemento.The following XAML shows how to cache a Canvas element. Para obtener el ejemplo de código completo , consulte Cómo: Mejorar el rendimiento de la representación mediante elalmacenamiento en caché de un elemento.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>

Comentarios

Utilice la BitmapCache clase para mejorar el rendimiento de la representación de UIElementun complejo.Use the BitmapCache class to improve rendering performance of a complex UIElement. Cree un BitmapCache y asígnelo a la CacheMode propiedad de UIElement para almacenar en caché el elemento y su subárbol como un mapa de bits en la memoria de vídeo.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. Esto resulta útil cuando se necesita animar, trasladar o escalar UIElement a lo más rápido posible.This is useful when you need to animate, translate, or scale a UIElement as quickly as possible. Este enfoque permite un equilibrio entre el rendimiento y la calidad visual, mientras que el contenido se almacena en caché.This approach enables a tradeoff between performance and visual quality while content is cached.

Use la BitmapCacheBrush clase para reutilizar eficazmente un elemento almacenado en caché.Use the BitmapCacheBrush class to efficiently reuse a cached element.

Establezca la RenderAtScale propiedad para escalar la memoria caché de mapas de bits.Set the RenderAtScale property to scale the bitmap cache. Esto resulta útil si se amplía un elemento y desea que el elemento se represente más claramente que si la memoria caché se hubiera generado simplemente en la resolución nativa del elemento.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.

Establezca la SnapsToDevicePixels propiedad cuando la memoria caché muestre el contenido que requiere que la alineación de píxeles se represente correctamente, como texto ClearType.Set the SnapsToDevicePixels property when the cache displays content that requires pixel-alignment to render correctly, such as ClearType text. Las BitmapCacheBrush clases y Viewport2DVisual3D omiten esta propiedad.This property is ignored by the BitmapCacheBrush and Viewport2DVisual3D classes.

Almacenar en caché un control no afecta al comportamiento de pasar el mouse por encima, por lo que la prueba de posicionamiento al pasar el puntero sobre ella funciona como si el mapa de bits fuera un control activo.Caching a control does not affect mouse-over behavior, so mouse-over hit testing operates as if it the bitmap were a live control.

La regeneración de la memoria caché solo se produce UIElement cuando cambia la estructura de o su subárbol CacheMode , o cuando cambia la configuración.Cache regeneration occurs only when the structure of the UIElement or its subtree changes, or when the CacheMode settings change. La configuración RenderAtScale de EnableClearType las propiedades o provoca la regeneración de la memoria caché.Setting the RenderAtScale or EnableClearType properties causes cache regeneration. Los cambios en el árbol visual primario del objeto almacenado UIElementen caché, como las transformaciones, las escalas, los opacities y los efectos, no afectan a la memoria caché.Changes to the parent visual tree of the cached UIElement, such as transforms, scales, opacities, and effects, do not affect the cache.

La memoria caché funciona cuando la aceleración de hardware no está disponible.The cache functions when hardware acceleration is not available. En este caso, el mapa de bits se representa en el software y las dimensiones de mapa de bits máximas son 2048 x 2048.In this case, the bitmap is rendered in software, and the maximum bitmap dimensions are 2048 x 2048.

Nota

RenderOptionsy TextOptions no se propagan a través de un elemento almacenado en memoria caché.RenderOptions and TextOptions do not propagate through a cached element. Es posible que tenga que volver a establecer estas opciones en los elementos secundarios de la memoria caché.You may have to set these options again in child elements below the cache.

Constructores

BitmapCache()

Inicializa una nueva instancia de la clase BitmapCache.Initializes a new instance of the BitmapCache class.

BitmapCache(Double)

Inicializa una nueva instancia de la clase BitmapCache con la escala especificado.Initializes a new instance of the BitmapCache class with the specified scale.

Campos

EnableClearTypeProperty

Identifica la propiedad de dependencia EnableClearType.Identifies the EnableClearType dependency property.

RenderAtScaleProperty

Identifica la propiedad de dependencia RenderAtScale.Identifies the RenderAtScale dependency property.

SnapsToDevicePixelsProperty

Identifica la propiedad de dependencia SnapsToDevicePixels.Identifies the SnapsToDevicePixels dependency property.

Propiedades

CanFreeze

Obtiene un valor que indica si el objeto se puede convertir en no modificable.Gets a value that indicates whether the object can be made unmodifiable.

(Heredado de Freezable)
DependencyObjectType

Obtiene el objeto DependencyObjectType que ajusta el tipo CLRCLR de esta instancia.Gets the DependencyObjectType that wraps the CLRCLR type of this instance.

(Heredado de DependencyObject)
Dispatcher

Obtiene el objeto Dispatcher al que está asociado DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Heredado de DispatcherObject)
EnableClearType

Obtiene o establece un valor que indica si el mapa de bits se presenta con ClearType activado.Gets or sets a value that indicates whether the bitmap is rendered with ClearType activated.

HasAnimatedProperties

Obtiene un valor que indica si uno o más objetos AnimationClock se asocian a cualquiera de las propiedades de dependencia de este objeto.Gets a value that indicates whether one or more AnimationClock objects is associated with any of this object's dependency properties.

(Heredado de Animatable)
IsFrozen

Obtiene un valor que indica si el objeto se puede modificar actualmente.Gets a value that indicates whether the object is currently modifiable.

(Heredado de Freezable)
IsSealed

Obtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura).Gets a value that indicates whether this instance is currently sealed (read-only).

(Heredado de DependencyObject)
RenderAtScale

Obtiene o establece un valor que indica la escala que se aplicar al mapa de bits.Gets or sets a value that indicates the scale that is applied to the bitmap.

SnapsToDevicePixels

Obtiene o establece un valor que indica si el mapa de bits se presenta con ajuste de píxeles.Gets or sets a value that indicates whether the bitmap is rendered with pixel snapping.

Métodos

ApplyAnimationClock(DependencyProperty, AnimationClock)

Se aplica AnimationClock al valor de DependencyProperty especificado.Applies an AnimationClock to the specified DependencyProperty. Si la propiedad ya está animada, se usa el comportamiento de entrega SnapshotAndReplace.If the property is already animated, the SnapshotAndReplace handoff behavior is used.

(Heredado de Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Se aplica AnimationClock al valor de DependencyProperty especificado.Applies an AnimationClock to the specified DependencyProperty. Si la propiedad ya está animada, se usa el objeto HandoffBehavior especificado.If the property is already animated, the specified HandoffBehavior is used.

(Heredado de Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Aplica una animación a la DependencyProperty especificada.Applies an animation to the specified DependencyProperty. La animación se inicia al representar el siguiente fotograma.The animation is started when the next frame is rendered. Si la propiedad especificada ya está animada, se usa el comportamiento de entrega SnapshotAndReplace.If the specified property is already animated, the SnapshotAndReplace handoff behavior is used.

(Heredado de Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Aplica una animación a la DependencyProperty especificada.Applies an animation to the specified DependencyProperty. La animación se inicia al representar el siguiente fotograma.The animation is started when the next frame is rendered. Si la propiedad especificada ya está animada, se usa el objeto HandoffBehavior especificado.If the specified property is already animated, the specified HandoffBehavior is used.

(Heredado de Animatable)
CheckAccess()

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Heredado de DispatcherObject)
ClearValue(DependencyProperty)

Borra el valor local de una propiedad.Clears the local value of a property. La propiedad que se va a borrar se especifica mediante un identificador DependencyProperty.The property to be cleared is specified by a DependencyProperty identifier.

(Heredado de DependencyObject)
ClearValue(DependencyPropertyKey)

Borra el valor local de una propiedad de solo lectura.Clears the local value of a read-only property. La propiedad que se va a borrar se especifica mediante un DependencyPropertyKey.The property to be cleared is specified by a DependencyPropertyKey.

(Heredado de DependencyObject)
Clone()

Crea un clon modificable del elemento BitmapCache y hace copias en profundidad de los valores del objeto.Creates a modifiable clone of the BitmapCache, making deep copies of the object's values. Cuando se copian las propiedades de dependencia del objeto, este método copia las expresiones (que puede que ya no se resuelvan), pero no copia las animaciones ni sus valores actuales.When copying the object's dependency properties, this method copies expressions (which might no longer resolve) but not animations or their current values.

CloneCore(Freezable)

Convierte la instancia en un clon (copia en profundidad) de la clase Freezable especificada con valores de propiedad base (no animadas).Makes the instance a clone (deep copy) of the specified Freezable using base (non-animated) property values.

(Heredado de Freezable)
CloneCurrentValue()

Crea un clon modificable (copia en profundidad) de BitmapCache con sus valores actuales.Creates a modifiable clone (deep copy) of the BitmapCache using its current values.

CloneCurrentValueCore(Freezable)

Convierte esta instancia en un clon modificable (copia en profundidad) del Freezable especificado mediante los valores de propiedad actuales.Makes the instance a modifiable clone (deep copy) of the specified Freezable using current property values.

(Heredado de Freezable)
CoerceValue(DependencyProperty)

Convierte el valor de la propiedad de dependencia especificada.Coerces the value of the specified dependency property. Esto se logra invocando cualquier función CoerceValueCallback especificada en los metadatos de la propiedad de dependencia tal como existe en la clase DependencyObject que llama.This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Heredado de DependencyObject)
CreateInstance()

Inicializa una nueva instancia de la clase Freezable.Initializes a new instance of the Freezable class.

(Heredado de Freezable)
CreateInstanceCore()

Cuando se implementa en una clase derivada, crea una nueva instancia de la clase Freezable derivada.When implemented in a derived class, creates a new instance of the Freezable derived class.

(Heredado de Freezable)
Equals(Object)

Determina si un objeto DependencyObject proporcionado es equivalente al objeto DependencyObject actual.Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Heredado de DependencyObject)
Freeze()

Convierte el objeto actual en no modificable y establece su propiedad IsFrozen en true.Makes the current object unmodifiable and sets its IsFrozen property to true.

(Heredado de Freezable)
FreezeCore(Boolean)

Convierte este objeto Animatable en no modificable o determina si se puede convertir en no modificable.Makes this Animatable object unmodifiable or determines whether it can be made unmodifiable.

(Heredado de Animatable)
GetAnimationBaseValue(DependencyProperty)

Devuelve el valor no animado del objeto DependencyProperty especificado.Returns the non-animated value of the specified DependencyProperty.

(Heredado de Animatable)
GetAsFrozen()

Crea una copia inmovilizada de Freezable, con los valores de propiedades base (no animadas).Creates a frozen copy of the Freezable, using base (non-animated) property values. Puesto que se inmoviliza la copia, se copia cualquier subobjeto inmovilizado por referencia.Because the copy is frozen, any frozen sub-objects are copied by reference.

(Heredado de Freezable)
GetAsFrozenCore(Freezable)

Convierte la instancia en un clon inmovilizado de la clase Freezable especificada con los valores de propiedades base (no animadas).Makes the instance a frozen clone of the specified Freezable using base (non-animated) property values.

(Heredado de Freezable)
GetCurrentValueAsFrozen()

Crea una copia inmovilizada de Freezable con los valores de propiedad actuales.Creates a frozen copy of the Freezable using current property values. Puesto que se inmoviliza la copia, se copia cualquier subobjeto inmovilizado por referencia.Because the copy is frozen, any frozen sub-objects are copied by reference.

(Heredado de Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Convierte la instancia actual en un clon inmovilizado de la clase Freezable especificada.Makes the current instance a frozen clone of the specified Freezable. Si el objeto tiene propiedades de dependencia animadas, se copian sus valores animados actuales.If the object has animated dependency properties, their current animated values are copied.

(Heredado de Freezable)
GetHashCode()

Obtiene el código hash de DependencyObject.Gets a hash code for this DependencyObject.

(Heredado de DependencyObject)
GetLocalValueEnumerator()

Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Heredado de DependencyObject)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de un DependencyObject.Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Heredado de DependencyObject)
InvalidateProperty(DependencyProperty)

Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada.Re-evaluates the effective value for the specified dependency property.

(Heredado de DependencyObject)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnChanged()

Se le llama cuando el objeto Freezable actual se modifica.Called when the current Freezable object is modified.

(Heredado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Se asegura de que se establecen los punteros contextuales adecuados para un miembro de datos DependencyObjectType que se acaba de establecer.Ensures that appropriate context pointers are established for a DependencyObjectType data member that has just been set.

(Heredado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Este miembro es compatible con la infraestructura de Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) y no está diseñado para utilizarse directamente desde el código.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

(Heredado de Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Reemplaza la implementación DependencyObject de OnPropertyChanged(DependencyPropertyChangedEventArgs) para invocar también cualquier controlador Changed en respuesta a una propiedad de dependencia cambiante de tipo Freezable.Overrides the DependencyObject implementation of OnPropertyChanged(DependencyPropertyChangedEventArgs) to also invoke any Changed handlers in response to a changing dependency property of type Freezable.

(Heredado de Freezable)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si existe.Returns the local value of a dependency property, if it exists.

(Heredado de DependencyObject)
ReadPreamble()

Se asegura de que se tiene acceso a Freezable desde un subproceso válido.Ensures that the Freezable is being accessed from a valid thread. Los herederos de Freezable deben llamar a este método al inicio de las API que leen miembros de datos que no son propiedades de dependencia.Inheritors of Freezable must call this method at the beginning of any API that reads data members that are not dependency properties.

(Heredado de Freezable)
SetCurrentValue(DependencyProperty, Object)

Establece el valor de una propiedad de dependencia sin cambiar el origen de su valor.Sets the value of a dependency property without changing its value source.

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia.Sets the local value of a dependency property, specified by its dependency property identifier.

(Heredado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Establece el valor local de una propiedad de dependencia de solo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Heredado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia suministrada.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Heredado de DependencyObject)
ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
VerifyAccess()

Exige que el subproceso de la llamada tenga acceso a DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Heredado de DispatcherObject)
WritePostscript()

Genera el evento Changed para Freezable e invoca su método OnChanged().Raises the Changed event for the Freezable and invokes its OnChanged() method. Las clases que derivan de Freezable deben llamar a este método al final de cualquier API que modifique miembros de clase que no estén almacenados como propiedades de dependencia.Classes that derive from Freezable should call this method at the end of any API that modifies class members that are not stored as dependency properties.

(Heredado de Freezable)
WritePreamble()

Comprueba que no se inmovilice Freezable y que se tiene acceso desde un contexto de subproceso válido.Verifies that the Freezable is not frozen and that it is being accessed from a valid threading context. Los herederos de Freezable deben llamar a este método al inicio de las API que escriben en miembros de datos que no son propiedades de dependencia.Freezable inheritors should call this method at the beginning of any API that writes to data members that are not dependency properties.

(Heredado de Freezable)

Eventos

Changed

Se produce cuando se modifican la clase Freezable o un objeto que la contiene.Occurs when the Freezable or an object it contains is modified.

(Heredado de Freezable)

Se aplica a

Consulte también: