BitmapCache BitmapCache BitmapCache BitmapCache Class

Определение

Создает и кэширует растровое представление 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
Наследование

Примеры

В следующем коде XAML показано, как кэшировать Canvas элемент.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>

Комментарии

Используйте класс BitmapCache , чтобы повысить производительность отрисовки сложного UIElement.Use the BitmapCache class to improve rendering performance of a complex UIElement. Создайте и присвойте его CacheMode свойству объекта UIElement , чтобы кэшировать элемент и его поддерево в виде растрового изображения в видеопамяти. BitmapCacheCreate 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. Это полезно, когда необходимо быстро анимировать, преобразовать или масштабировать UIElement как можно быстрее.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.

BitmapCacheBrush Используйте класс для эффективного повторного использования кэшированного элемента.Use the BitmapCacheBrush class to efficiently reuse a cached element.

RenderAtScale Задайте свойство для масштабирования кэша растрового изображения.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.

SnapsToDevicePixels Задайте свойство, если в кэше отображается содержимое, для правильного отображения которого требуется выравнивание по пикселю, например текст ClearType.Set the SnapsToDevicePixels property when the cache displays content that requires pixel-alignment to render correctly, such as ClearType text. Это свойство игнорируется BitmapCacheBrush классами и Viewport2DVisual3D .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.

Повторное создание кэша происходит только при изменении структуры UIElement или его поддерева или CacheMode при изменении параметров.Cache regeneration occurs only when the structure of the UIElement or its subtree changes, or when the CacheMode settings change. Установка свойств EnableClearType или вызывает повторное создание кэша. RenderAtScaleSetting the RenderAtScale or EnableClearType properties causes cache regeneration. Изменения в родительском визуальном дереве кэшированных UIElementданных, например преобразование, масштабирование, опаЦитиес и эффекты, не затрагивают кэш.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. В этом случае точечный рисунок отображается в программном обеспечении, а максимальные размеры битовых карт — 2048 x 2048.In this case, the bitmap is rendered in software, and the maximum bitmap dimensions are 2048 x 2048.

Примечание

RenderOptionsи TextOptions не распространяются через кэшированный элемент.RenderOptions and TextOptions do not propagate through a cached element. Может потребоваться снова задать эти параметры в дочерних элементах, расположенных под кэшем.You may have to set these options again in child elements below the cache.

Конструкторы

BitmapCache() BitmapCache() BitmapCache() BitmapCache()

Инициализирует новый экземпляр класса BitmapCache.Initializes a new instance of the BitmapCache class.

BitmapCache(Double) BitmapCache(Double) BitmapCache(Double) BitmapCache(Double)

Инициализирует новый экземпляр класса BitmapCache с заданным масштабом.Initializes a new instance of the BitmapCache class with the specified scale.

Поля

EnableClearTypeProperty EnableClearTypeProperty EnableClearTypeProperty EnableClearTypeProperty

Идентифицирует свойство зависимостей EnableClearType.Identifies the EnableClearType dependency property.

RenderAtScaleProperty RenderAtScaleProperty RenderAtScaleProperty RenderAtScaleProperty

Идентифицирует свойство зависимостей RenderAtScale.Identifies the RenderAtScale dependency property.

SnapsToDevicePixelsProperty SnapsToDevicePixelsProperty SnapsToDevicePixelsProperty SnapsToDevicePixelsProperty

Идентифицирует свойство зависимостей SnapsToDevicePixels.Identifies the SnapsToDevicePixels dependency property.

Свойства

CanFreeze CanFreeze CanFreeze CanFreeze

Возвращает значение, которое указывает, можно ли сделать объект неизменяемым.Gets a value that indicates whether the object can be made unmodifiable.

(Inherited from Freezable)
DependencyObjectType DependencyObjectType DependencyObjectType DependencyObjectType

Возвращает DependencyObjectType, который создает обертку для типа CLRCLR данного экземпляра.Gets the DependencyObjectType that wraps the CLRCLR type of this instance.

(Inherited from DependencyObject)
Dispatcher Dispatcher Dispatcher Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
EnableClearType EnableClearType EnableClearType EnableClearType

Получает или задает значение, указывающее, визуализируется ли растровое изображение с активированным алгоритмом ClearType.Gets or sets a value that indicates whether the bitmap is rendered with ClearType activated.

HasAnimatedProperties HasAnimatedProperties HasAnimatedProperties HasAnimatedProperties

Возвращает значение, которое указывает, сопоставлены ли один или несколько объектов AnimationClock любому из свойств зависимостей этого объекта.Gets a value that indicates whether one or more AnimationClock objects is associated with any of this object's dependency properties.

(Inherited from Animatable)
IsFrozen IsFrozen IsFrozen IsFrozen

Получает значение, указывающее, доступен ли объект для изменения в настоящее время.Gets a value that indicates whether the object is currently modifiable.

(Inherited from Freezable)
IsSealed IsSealed IsSealed IsSealed

Получает значение, указывающее, является ли этот экземпляр в данный момент запечатанным (доступным только для чтения).Gets a value that indicates whether this instance is currently sealed (read-only).

(Inherited from DependencyObject)
RenderAtScale RenderAtScale RenderAtScale RenderAtScale

Получает или задает значение, которое указывает масштаб, применяемый для растрового изображения.Gets or sets a value that indicates the scale that is applied to the bitmap.

SnapsToDevicePixels SnapsToDevicePixels SnapsToDevicePixels SnapsToDevicePixels

Получает или задает значение, указывающее, визуализируется ли растровое изображение с привязкой пикселей.Gets or sets a value that indicates whether the bitmap is rendered with pixel snapping.

Методы

ApplyAnimationClock(DependencyProperty, AnimationClock) ApplyAnimationClock(DependencyProperty, AnimationClock) ApplyAnimationClock(DependencyProperty, AnimationClock) ApplyAnimationClock(DependencyProperty, AnimationClock)

Применяет AnimationClock к заданному DependencyProperty.Applies an AnimationClock to the specified DependencyProperty. Если свойство уже анимировано, используется эстафетное поведение SnapshotAndReplace.If the property is already animated, the SnapshotAndReplace handoff behavior is used.

(Inherited from Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Применяет AnimationClock к заданному DependencyProperty.Applies an AnimationClock to the specified DependencyProperty. Если свойство уже является анимированным, используется указанное поведение HandoffBehavior.If the property is already animated, the specified HandoffBehavior is used.

(Inherited from Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline) BeginAnimation(DependencyProperty, AnimationTimeline) BeginAnimation(DependencyProperty, AnimationTimeline) BeginAnimation(DependencyProperty, AnimationTimeline)

Применяет анимацию к указанному DependencyProperty.Applies an animation to the specified DependencyProperty. Анимация начинается при отрисовке следующего кадра.The animation is started when the next frame is rendered. Если указанное свойство уже анимировано, используется поведение перемещения SnapshotAndReplace.If the specified property is already animated, the SnapshotAndReplace handoff behavior is used.

(Inherited from Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Применяет анимацию к указанному DependencyProperty.Applies an animation to the specified DependencyProperty. Анимация начинается при отрисовке следующего кадра.The animation is started when the next frame is rendered. Если указанное свойство уже является анимированным, используется указанное поведение HandoffBehavior.If the specified property is already animated, the specified HandoffBehavior is used.

(Inherited from Animatable)
CheckAccess() CheckAccess() CheckAccess() CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
ClearValue(DependencyProperty) ClearValue(DependencyProperty) ClearValue(DependencyProperty) ClearValue(DependencyProperty)

Очищает локальное значение свойства.Clears the local value of a property. Очищаемое свойство задается идентификатором DependencyProperty.The property to be cleared is specified by a DependencyProperty identifier.

(Inherited from DependencyObject)
ClearValue(DependencyPropertyKey) ClearValue(DependencyPropertyKey) ClearValue(DependencyPropertyKey) ClearValue(DependencyPropertyKey)

Очищает локальное значение свойства, доступного только для чтения.Clears the local value of a read-only property. Очищаемое свойство задается объектом DependencyPropertyKey.The property to be cleared is specified by a DependencyPropertyKey.

(Inherited from DependencyObject)
Clone() Clone() Clone() Clone()

Создает редактируемую копию объекта BitmapCache, что позволяет выполнить глубокое копирование значений объекта.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.

CloneCore(Freezable) CloneCore(Freezable) CloneCore(Freezable) CloneCore(Freezable)

Делает экземпляр клоном (глубокой копией) указанного объекта Freezable, используя базовые (без анимации) значения свойств.Makes the instance a clone (deep copy) of the specified Freezable using base (non-animated) property values.

(Inherited from Freezable)
CloneCurrentValue() CloneCurrentValue() CloneCurrentValue() CloneCurrentValue()

Создает редактируемую копию (глубокую копию) объекта BitmapCache с использованием его текущих значений.Creates a modifiable clone (deep copy) of the BitmapCache using its current values.

CloneCurrentValueCore(Freezable) CloneCurrentValueCore(Freezable) CloneCurrentValueCore(Freezable) CloneCurrentValueCore(Freezable)

Создает экземпляр редактируемой копии (глубокой копии) заданного объекта Freezable, используя текущие значения свойства.Makes the instance a modifiable clone (deep copy) of the specified Freezable using current property values.

(Inherited from Freezable)
CoerceValue(DependencyProperty) CoerceValue(DependencyProperty) CoerceValue(DependencyProperty) CoerceValue(DependencyProperty)

Приводит значение указанного свойства зависимостей.Coerces the value of the specified dependency property. Это осуществляется путем вызова какой-либо функции CoerceValueCallback, указанной в метаданных свойства зависимостей, которое существует в вызывающем объекте DependencyObject.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)
CreateInstance() CreateInstance() CreateInstance() CreateInstance()

Инициализирует новый экземпляр класса Freezable.Initializes a new instance of the Freezable class.

(Inherited from Freezable)
CreateInstanceCore() CreateInstanceCore() CreateInstanceCore() CreateInstanceCore()

Если реализуется в производном классе, создает новый экземпляр производного класса Freezable.When implemented in a derived class, creates a new instance of the Freezable derived class.

(Inherited from Freezable)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, является ли указанный DependencyObject эквивалентом текущего DependencyObject.Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Inherited from DependencyObject)
Freeze() Freeze() Freeze() Freeze()

Делает текущий объект неизменяемым и присваивает его свойству IsFrozen значение true.Makes the current object unmodifiable and sets its IsFrozen property to true.

(Inherited from Freezable)
FreezeCore(Boolean) FreezeCore(Boolean) FreezeCore(Boolean) FreezeCore(Boolean)

Делает данный объект Animatable неизменяемым или определяет, может ли он быть сделан неизменяемым.Makes this Animatable object unmodifiable or determines whether it can be made unmodifiable.

(Inherited from Animatable)
GetAnimationBaseValue(DependencyProperty) GetAnimationBaseValue(DependencyProperty) GetAnimationBaseValue(DependencyProperty) GetAnimationBaseValue(DependencyProperty)

Возвращает не анимированное значение указанного объекта DependencyProperty.Returns the non-animated value of the specified DependencyProperty.

(Inherited from Animatable)
GetAsFrozen() GetAsFrozen() GetAsFrozen() GetAsFrozen()

Создает фиксированную копию объекта Freezable, используя базовые (не анимационные) значения свойств.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)
GetAsFrozenCore(Freezable) GetAsFrozenCore(Freezable) GetAsFrozenCore(Freezable) GetAsFrozenCore(Freezable)

Создает экземпляр фиксированной копии заданного объекта Freezable, используя базовые (не анимационные) значения свойства.Makes the instance a frozen clone of the specified Freezable using base (non-animated) property values.

(Inherited from Freezable)
GetCurrentValueAsFrozen() GetCurrentValueAsFrozen() GetCurrentValueAsFrozen() GetCurrentValueAsFrozen()

Создает фиксированную копию объекта Freezable с использованием текущих значений свойств.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)
GetCurrentValueAsFrozenCore(Freezable) GetCurrentValueAsFrozenCore(Freezable) GetCurrentValueAsFrozenCore(Freezable) GetCurrentValueAsFrozenCore(Freezable)

Создает текущий экземпляр замороженной копии указанного объекта Freezable.Makes the current instance a frozen clone of the specified Freezable. Если объект имеет анимированные свойства зависимостей, копируются их текущие анимированные значения.If the object has animated dependency properties, their current animated values are copied.

(Inherited from Freezable)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Получает хэш-код для данного объекта DependencyObject.Gets a hash code for this DependencyObject.

(Inherited from DependencyObject)
GetLocalValueEnumerator() GetLocalValueEnumerator() GetLocalValueEnumerator() GetLocalValueEnumerator()

Создает специализированный перечислитель для определения свойств зависимостей, которые локально установили значения для данного DependencyObject.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Inherited from DependencyObject)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
GetValue(DependencyProperty) GetValue(DependencyProperty) GetValue(DependencyProperty) GetValue(DependencyProperty)

Возвращает текущее действующее значение свойства зависимостей в этом экземпляре DependencyObject.Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Inherited from DependencyObject)
InvalidateProperty(DependencyProperty) InvalidateProperty(DependencyProperty) InvalidateProperty(DependencyProperty) InvalidateProperty(DependencyProperty)

Повторно вычисляет действующее значение для указанного свойства зависимостейRe-evaluates the effective value for the specified dependency property

(Inherited from DependencyObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnChanged() OnChanged() OnChanged() OnChanged()

Вызывается при изменении текущего объекта Freezable.Called when the current Freezable object is modified.

(Inherited from Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject) OnFreezablePropertyChanged(DependencyObject, DependencyObject) OnFreezablePropertyChanged(DependencyObject, DependencyObject) OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Обеспечивает создание соответствующих указателей контекста для элемента данных типа DependencyObjectType, который был только что задан.Ensures that appropriate context pointers are established for a DependencyObjectType data member that has just been set.

(Inherited from Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Этот член поддерживает инфраструктуру Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) и не предназначен для непосредственного использования из кода.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

(Inherited from Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs) OnPropertyChanged(DependencyPropertyChangedEventArgs) OnPropertyChanged(DependencyPropertyChangedEventArgs) OnPropertyChanged(DependencyPropertyChangedEventArgs)

Переопределяет реализацию DependencyObject для OnPropertyChanged(DependencyPropertyChangedEventArgs), чтобы также вызвать любой обработчик Changed в ответ на изменение свойства зависимостей типа Freezable.Overrides the DependencyObject implementation of OnPropertyChanged(DependencyPropertyChangedEventArgs) to also invoke any Changed handlers in response to a changing dependency property of type Freezable.

(Inherited from Freezable)
ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если таковое существует.Returns the local value of a dependency property, if it exists.

(Inherited from DependencyObject)
ReadPreamble() ReadPreamble() ReadPreamble() ReadPreamble()

Обеспечивает доступ к Freezable из допустимого потока.Ensures that the Freezable is being accessed from a valid thread. Наследники объекта Freezable должны вызывать данный метод в начале любого APIAPI, который считывает элементы данных, не являющиеся свойствами зависимостей.Inheritors of Freezable must call this method at the beginning of any APIAPI that reads data members that are not dependency properties.

(Inherited from Freezable)
SetCurrentValue(DependencyProperty, Object) SetCurrentValue(DependencyProperty, Object) SetCurrentValue(DependencyProperty, Object) SetCurrentValue(DependencyProperty, Object)

Задает значение свойства зависимостей, не меняя источник значения.Sets the value of a dependency property without changing its value source.

(Inherited from DependencyObject)
SetValue(DependencyProperty, Object) SetValue(DependencyProperty, Object) SetValue(DependencyProperty, Object) SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей, указанного идентификатором этого свойства.Sets the local value of a dependency property, specified by its dependency property identifier.

(Inherited from DependencyObject)
SetValue(DependencyPropertyKey, Object) SetValue(DependencyPropertyKey, Object) SetValue(DependencyPropertyKey, Object) SetValue(DependencyPropertyKey, Object)

Задает локальное значение свойства зависимости только для чтения, определяемое идентификатором DependencyPropertyKey свойства зависимостей.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Inherited from DependencyObject)
ShouldSerializeProperty(DependencyProperty) ShouldSerializeProperty(DependencyProperty) ShouldSerializeProperty(DependencyProperty) ShouldSerializeProperty(DependencyProperty)

Возвращает значение, которое указывает, следует ли процессам сериализации выполнять сериализацию значения для предоставленного свойства зависимостей.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Inherited from DependencyObject)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)
VerifyAccess() VerifyAccess() VerifyAccess() VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
WritePostscript() WritePostscript() WritePostscript() WritePostscript()

Вызывает событие Changed для объекта Freezable и вызывает его метод OnChanged().Raises the Changed event for the Freezable and invokes its OnChanged() method. Классы, производные от Freezable, должны вызывать этот метод в конце любого API, который изменяет члены класса, не сохраненные в виде свойств зависимостей.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.

(Inherited from Freezable)
WritePreamble() WritePreamble() WritePreamble() WritePreamble()

Проверяет, что объект Freezable не заморожен и доступ к нему осуществляется из допустимого контекста потока.Verifies that the Freezable is not frozen and that it is being accessed from a valid threading context. Наследники объекта Freezable должны вызывать данный метод в начале любого APIAPI, который выполняет запись в элементах данных, не являющихся свойствами зависимостей.Freezable inheritors should call this method at the beginning of any APIAPI that writes to data members that are not dependency properties.

(Inherited from Freezable)

События

Changed Changed Changed Changed

Происходит, когда изменяется класс Freezable или объект, который входит в его состав.Occurs when the Freezable or an object it contains is modified.

(Inherited from Freezable)

Применяется к

Дополнительно