Udostępnij przez


Przegląd efektów mapy bitowej

Efekty mapy bitowej umożliwiają projektantom i deweloperom stosowanie efektów wizualnych do renderowanej zawartości programu Windows Presentation Foundation (WPF). Na przykład efekty mapy bitowej umożliwiają łatwe stosowanie DropShadowBitmapEffect efektu lub efektu rozmycia do obrazu lub przycisku.

Ważne

W programie .NET Framework 4 lub nowszym klasa BitmapEffect jest przestarzała. Jeśli spróbujesz użyć klasy BitmapEffect, otrzymasz przestarzały wyjątek. Nie przestarzałą alternatywą dla klasy BitmapEffect jest klasa Effect. W większości przypadków klasa Effect jest znacznie szybsza.

Efekty mapy bitowej WPF

Efekty mapy bitowej (BitmapEffect obiekt) to proste operacje przetwarzania pikseli. Efekt mapy bitowej przyjmuje BitmapSource jako dane wejściowe i tworzy nowy BitmapSource po zastosowaniu efektu, takiego jak rozmycie lub cień. Każdy efekt bitmapy udostępnia właściwości umożliwiające kontrolowanie parametrów filtrowania, takich jak Radius.

W szczególnym przypadku w WPF efekty można ustawić jako właściwości obiektów na żywo Visual, takich jak Button lub TextBox. Przetwarzanie pikseli jest stosowane i renderowane w czasie rzeczywistym. W takim przypadku w momencie renderowania Visual jest automatycznie konwertowany na jego BitmapSource odpowiednik i jest podawany jako dane wejściowe do BitmapEffect. Wynik zastępuje domyślne zachowanie renderowania dla obiektu Visual. BitmapEffect Dlatego obiekty wymuszają renderowanie wizualizacji tylko w oprogramowaniu, tj. brak przyspieszania sprzętowego wizualizacji podczas stosowania efektów.

Uwaga / Notatka

Efekty mapy bitowej WPF są renderowane w trybie oprogramowania. Każdy obiekt, który stosuje efekt, również będzie renderowany w oprogramowaniu. Wydajność jest najbardziej obniżona w przypadku używania efektów mapy bitowej na dużych wizualizacjach lub animowania właściwości efektu mapy bitowej. Nie oznacza to, że w ogóle nie należy stosować efektów bitmapy, ale należy zachować ostrożność i dokładnie przetestować, aby upewnić się, że użytkownicy mają doświadczenie zgodne z oczekiwaniami.

Uwaga / Notatka

Efekty mapy bitowej WPF nie obsługują wykonywania częściowego zaufania. Aplikacja musi mieć pełne uprawnienia zaufania do korzystania z efektów mapy bitowej.

Jak zastosować efekt

BitmapEffect jest właściwością w Visual. W związku z tym stosowanie efektów do wizualizacji, takich jak Button, Image, DrawingVisual lub UIElement, jest tak proste, jak ustawianie właściwości. BitmapEffect można ustawić jako pojedynczy obiekt BitmapEffect, lub połączyć wiele efektów w łańcuch za pomocą obiektu BitmapEffectGroup.

W poniższym przykładzie pokazano, jak zastosować element BitmapEffect w języku XAML (Extensible Application Markup Language).

<Button  Width="200">You Can't Read This!
  <Button.BitmapEffect>

  <!-- <BitmapEffectGroup> would go here if you wanted to apply more 
         then one effect to the Button. However, in this example only  
         one effect is being applied so BitmapEffectGroup does not need  
         to be included. -->

    <!-- The larger the Radius, the more blurring. The default range is 20.
         In addition, the KernelType is set to a box kernel. A box kernel
         creates less disruption (less blur) then the default Gaussian kernel. -->
    <BlurBitmapEffect Radius="10" KernelType="Box" />

  </Button.BitmapEffect>
</Button>

W poniższym przykładzie pokazano, jak zastosować element BitmapEffect w kodzie.

// Get a reference to the Button.
Button myButton = (Button)sender;

// Initialize a new BlurBitmapEffect that will be applied
// to the Button.
BlurBitmapEffect myBlurEffect = new BlurBitmapEffect();

// Set the Radius property of the blur. This determines how
// blurry the effect will be. The larger the radius, the more
// blurring.
myBlurEffect.Radius = 10;

// Set the KernelType property of the blur. A KernalType of "Box"
// creates less blur than the Gaussian kernal type.
myBlurEffect.KernelType = KernelType.Box;

// Apply the bitmap effect to the Button.
myButton.BitmapEffect = myBlurEffect;

Uwaga / Notatka

Gdy BitmapEffect jest zastosowany do kontenera układu, takiego jak DockPanel lub Canvas, efekt jest stosowany do drzewa wizualnego elementu lub wizualu, w tym do wszystkich jego elementów podrzędnych.

Tworzenie efektów niestandardowych

WPF udostępnia również niezarządzane interfejsy do tworzenia niestandardowych efektów, które mogą być używane w zarządzanych aplikacjach WPF. Aby uzyskać dodatkowe materiały referencyjne dotyczące tworzenia niestandardowych efektów mapy bitowej, zobacz dokumentację Niezarządzanego efektu mapy bitowej WPF .

Zobacz także