BitmapCache Klasa

Definicja

Tworzy i buforuje reprezentację mapy bitowej elementu 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
Dziedziczenie

Przykłady

Poniższy kod XAML pokazuje, jak buforować Canvas element. Pełny przykład kodu można znaleźć w temacie How to: Improve Rendering Performance by Caching an Element (Instrukcje: poprawianie wydajności renderowania przez buforowanie elementu).

<!-- //////////////////////////////////////////////////////////////// -->
<!-- // 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>

Uwagi

Użyj klasy , BitmapCache aby zwiększyć wydajność renderowania złożonego UIElementobiektu . Utwórz obiekt BitmapCache i przypisz go do CacheMode właściwości elementu UIElement w celu buforowania elementu i jego poddrzewa jako mapy bitowej w pamięci wideo. Jest to przydatne, gdy trzeba animować, tłumaczyć lub skalować tak UIElement szybko, jak to możliwe. Takie podejście umożliwia kompromis między wydajnością a jakością wizualizacji, gdy zawartość jest buforowana.

BitmapCacheBrush Użyj klasy, aby efektywnie użyć buforowanego elementu.

RenderAtScale Ustaw właściwość na skalowanie pamięci podręcznej mapy bitowej. Jest to przydatne, jeśli element zostanie powiększy i chcesz, aby element był renderowany bardziej wyraźnie niż gdyby pamięć podręczna została po prostu wygenerowana przy natywnej rozdzielczości elementu.

Ustaw właściwość, gdy pamięć podręczna SnapsToDevicePixels wyświetla zawartość, która wymaga poprawnego renderowania wyrównania pikseli, na przykład tekstu ClearType. Ta właściwość jest ignorowana przez BitmapCacheBrush klasy i Viewport2DVisual3D .

Buforowanie kontrolki nie ma wpływu na zachowanie myszy, więc testowanie trafień myszy działa tak, jakby mapa bitowa była kontrolką na żywo.

Regenerowanie pamięci podręcznej odbywa się tylko wtedy, gdy struktura UIElement lub jego poddrzewa ulegnie zmianie lub gdy CacheMode ustawienia się zmienią. RenderAtScale Ustawienie właściwości or EnableClearType powoduje regenerowanie pamięci podręcznej. Zmiany w nadrzędnym drzewie wizualnym buforowanego UIElementobiektu , takie jak przekształcenia, skalowanie, możliwości i efekty, nie wpływają na pamięć podręczną.

Funkcja pamięci podręcznej, gdy przyspieszanie sprzętowe jest niedostępne. W takim przypadku mapa bitowa jest renderowana w oprogramowaniu, a maksymalne wymiary mapy bitowej to 2048 x 2048.

Uwaga

RenderOptions i TextOptions nie propagują za pośrednictwem buforowanego elementu. Być może trzeba będzie ponownie ustawić te opcje w elementach podrzędnych poniżej pamięci podręcznej.

Konstruktory

BitmapCache()

Inicjuje nowe wystąpienie klasy BitmapCache.

BitmapCache(Double)

Inicjuje BitmapCache nowe wystąpienie klasy o określonej skali.

Pola

EnableClearTypeProperty

Identyfikuje EnableClearType właściwość zależności.

RenderAtScaleProperty

Identyfikuje RenderAtScale właściwość zależności.

SnapsToDevicePixelsProperty

Identyfikuje SnapsToDevicePixels właściwość zależności.

Właściwości

CanFreeze

Pobiera wartość wskazującą, czy obiekt może być niemodyfikowalny.

(Odziedziczone po Freezable)
DependencyObjectType

DependencyObjectType Pobiera opakowujący typ clR tego wystąpienia.

(Odziedziczone po DependencyObject)
Dispatcher

Dispatcher Pobiera tę DispatcherObject wartość skojarzona z.

(Odziedziczone po DispatcherObject)
EnableClearType

Pobiera lub ustawia wartość wskazującą, czy mapa bitowa jest renderowana za pomocą aktywowanej funkcji ClearType.

HasAnimatedProperties

Pobiera wartość wskazującą, czy co najmniej jeden AnimationClock obiekt jest skojarzony z dowolnymi właściwościami zależności tego obiektu.

(Odziedziczone po Animatable)
IsFrozen

Pobiera wartość wskazującą, czy obiekt jest obecnie modyfikowalny.

(Odziedziczone po Freezable)
IsSealed

Pobiera wartość wskazującą, czy to wystąpienie jest obecnie zapieczętowane (tylko do odczytu).

(Odziedziczone po DependencyObject)
RenderAtScale

Pobiera lub ustawia wartość wskazującą skalę, która jest stosowana do mapy bitowej.

SnapsToDevicePixels

Pobiera lub ustawia wartość wskazującą, czy mapa bitowa jest renderowana za pomocą przyciągania pikseli.

Metody

ApplyAnimationClock(DependencyProperty, AnimationClock)

Stosuje element AnimationClock do określonego DependencyPropertyelementu . Jeśli właściwość jest już animowana, SnapshotAndReplace używane jest zachowanie przekazywania.

(Odziedziczone po Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Stosuje element AnimationClock do określonego DependencyPropertyelementu . Jeśli właściwość jest już animowana, zostanie użyta określona HandoffBehavior wartość .

(Odziedziczone po Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Stosuje animację do określonego DependencyPropertyelementu . Animacja jest uruchamiana po renderowaniu następnej ramki. Jeśli określona właściwość jest już animowana, SnapshotAndReplace zostanie użyte zachowanie przekazywania.

(Odziedziczone po Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Stosuje animację do określonego DependencyPropertyelementu . Animacja jest uruchamiana po renderowaniu następnej ramki. Jeśli określona właściwość jest już animowana, zostanie użyta określona HandoffBehavior właściwość.

(Odziedziczone po Animatable)
CheckAccess()

Określa, czy wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)
ClearValue(DependencyProperty)

Czyści wartość lokalną właściwości. Właściwość do wyczyszczenia jest określana przez DependencyProperty identyfikator.

(Odziedziczone po DependencyObject)
ClearValue(DependencyPropertyKey)

Czyści wartość lokalną właściwości tylko do odczytu. Właściwość do wyczyszczenia jest określana przez DependencyPropertyKeyelement .

(Odziedziczone po DependencyObject)
Clone()

Tworzy modyfikowalny klon obiektu BitmapCache, tworząc głębokie kopie wartości obiektu. Podczas kopiowania właściwości zależności obiektu ta metoda kopiuje wyrażenia (które mogą już nie być rozpoznawane), ale nie animacje ani ich bieżące wartości.

CloneCore(Freezable)

Sprawia, że wystąpienie jest klonem (kopią głęboką) określonej Freezable wartości właściwości przy użyciu wartości właściwości base (nie animowanych).

(Odziedziczone po Freezable)
CloneCurrentValue()

Tworzy modyfikowalny klon (kopię głęboką) BitmapCache przy użyciu jego bieżących wartości.

CloneCurrentValueCore(Freezable)

Sprawia, że wystąpienie jest modyfikowalny klon (kopia głęboka) określonego Freezable przy użyciu bieżących wartości właściwości.

(Odziedziczone po Freezable)
CoerceValue(DependencyProperty)

Coerce wartość określonej właściwości zależności. Jest to realizowane przez wywołanie dowolnej CoerceValueCallback funkcji określonej w metadanych właściwości dla właściwości zależności, ponieważ istnieje w wywołaniu DependencyObject.

(Odziedziczone po DependencyObject)
CreateInstance()

Inicjuje nowe wystąpienie klasy Freezable.

(Odziedziczone po Freezable)
CreateInstanceCore()

Po zaimplementowaniu w klasie pochodnej tworzy nowe wystąpienie klasy pochodnej Freezable .

(Odziedziczone po Freezable)
Equals(Object)

Określa, czy podany DependencyObject element jest odpowiednikiem bieżącego DependencyObjectelementu .

(Odziedziczone po DependencyObject)
Freeze()

Sprawia, że bieżący obiekt jest niezmodyfikowalny i ustawia jego IsFrozen właściwość na true.

(Odziedziczone po Freezable)
FreezeCore(Boolean)

Sprawia, że ten Animatable obiekt jest niezmodyfikowalny lub określa, czy można go niemodyfikować.

(Odziedziczone po Animatable)
GetAnimationBaseValue(DependencyProperty)

Zwraca wartość nie animowaną określonego DependencyPropertyelementu .

(Odziedziczone po Animatable)
GetAsFrozen()

Tworzy zamrożoną kopię obiektu Freezableprzy użyciu wartości właściwości base (nie animowanych). Ponieważ kopia jest zamrożona, wszystkie zamrożone obiekty podrzędne są kopiowane przez odwołanie.

(Odziedziczone po Freezable)
GetAsFrozenCore(Freezable)

Sprawia, że wystąpienie jest zamrożonym klonem określonej Freezable wartości właściwości przy użyciu wartości właściwości base (nie animowanych).

(Odziedziczone po Freezable)
GetCurrentValueAsFrozen()

Tworzy zamrożoną kopię przy użyciu bieżących Freezable wartości właściwości. Ponieważ kopia jest zamrożona, wszystkie zamrożone obiekty podrzędne są kopiowane przez odwołanie.

(Odziedziczone po Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Sprawia, że bieżące wystąpienie jest klonem zamrożonym określonego Freezableobiektu . Jeśli obiekt ma animowane właściwości zależności, są kopiowane ich bieżące animowane wartości.

(Odziedziczone po Freezable)
GetHashCode()

Pobiera kod skrótu dla tego pliku DependencyObject.

(Odziedziczone po DependencyObject)
GetLocalValueEnumerator()

Tworzy wyspecjalizowany moduł wyliczający do określania, które właściwości zależności mają lokalnie ustawione wartości w tym DependencyObjectelemecie .

(Odziedziczone po DependencyObject)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
GetValue(DependencyProperty)

Zwraca bieżącą obowiązującą wartość właściwości zależności dla tego wystąpienia obiektu DependencyObject.

(Odziedziczone po DependencyObject)
InvalidateProperty(DependencyProperty)

Ponownie oblicza efektywną wartość dla określonej właściwości zależności.

(Odziedziczone po DependencyObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnChanged()

Wywoływana po zmodyfikowaniu bieżącego Freezable obiektu.

(Odziedziczone po Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Zapewnia, że odpowiednie wskaźniki kontekstu są ustanawiane dla DependencyObjectType elementu członkowskiego danych, który został właśnie ustawiony.

(Odziedziczone po Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Ten element członkowski obsługuje infrastrukturę Windows Presentation Foundation (WPF) i nie jest przeznaczony do użycia bezpośrednio z kodu.

(Odziedziczone po Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Zastępuje implementację DependencyObjectOnPropertyChanged(DependencyPropertyChangedEventArgs) metody w celu wywołania wszystkich Changed procedur obsługi w odpowiedzi na zmieniającą się właściwość zależności typu Freezable.

(Odziedziczone po Freezable)
ReadLocalValue(DependencyProperty)

Zwraca wartość lokalną właściwości zależności, jeśli istnieje.

(Odziedziczone po DependencyObject)
ReadPreamble()

Gwarantuje, że dostęp do obiektu Freezable jest uzyskiwany z prawidłowego wątku. Dziedzicze muszą Freezable wywoływać tę metodę na początku dowolnego interfejsu API, który odczytuje elementy członkowskie danych, które nie są właściwościami zależności.

(Odziedziczone po Freezable)
SetCurrentValue(DependencyProperty, Object)

Ustawia wartość właściwości zależności bez zmiany źródła wartości.

(Odziedziczone po DependencyObject)
SetValue(DependencyProperty, Object)

Ustawia wartość lokalną właściwości zależności określonej przez jego identyfikator właściwości zależności.

(Odziedziczone po DependencyObject)
SetValue(DependencyPropertyKey, Object)

Ustawia wartość lokalną właściwości zależności tylko do odczytu określona przez DependencyPropertyKey identyfikator właściwości zależności.

(Odziedziczone po DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Zwraca wartość wskazującą, czy procesy serializacji powinny serializować wartość podanej właściwości zależności.

(Odziedziczone po DependencyObject)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
VerifyAccess()

Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)
WritePostscript()

Changed Zgłasza zdarzenie dla Freezable metody i wywołuje jej OnChanged() metodę. Klasy pochodzące z Freezable programu powinny wywoływać tę metodę na końcu dowolnego interfejsu API, który modyfikuje składowe klasy, które nie są przechowywane jako właściwości zależności.

(Odziedziczone po Freezable)
WritePreamble()

Sprawdza, czy Freezable element nie jest zamrożony i czy jest uzyskiwany dostęp do niego z prawidłowego kontekstu wątkowego. Freezable dziedzicze powinny wywoływać tę metodę na początku dowolnego interfejsu API, który zapisuje do elementów członkowskich danych, które nie są właściwościami zależności.

(Odziedziczone po Freezable)

Zdarzenia

Changed

Występuje, gdy Freezable obiekt lub, który zawiera, jest modyfikowany.

(Odziedziczone po Freezable)

Dotyczy

Zobacz też