Przegląd Efekty 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 BitmapEffect klasa jest przestarzała. Jeśli spróbujesz użyć BitmapEffect klasy, otrzymasz przestarzały wyjątek. Nie przestarzałą alternatywą dla BitmapEffect klasy jest Effect klasa . W większości przypadków klasa jest znacznie szybsza Effect .

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 mapy bitowej uwidacznia właściwości, które mogą kontrolować właściwości filtrowaniaBlurBitmapEffect, takie jak Radius .

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

Uwaga

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 używać efektów mapy bitowej, ale należy zachować ostrożność i dokładnie przetestować, aby upewnić się, że użytkownicy uzyskują oczekiwane środowisko.

Uwaga

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

BitmapEffectjest właściwością na .Visual W związku z tym stosowanie efektów do wizualizacji, takich jak , , ImageDrawingVisuallub UIElement, jest tak proste, jak Buttonustawianie właściwości. BitmapEffect Można ustawić na pojedynczy BitmapEffect obiekt lub wiele efektów można połączyć łańcuchem za pomocą BitmapEffectGroup obiektu .

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

BitmapEffect Po zastosowaniu elementu do kontenera układu, takiego jak DockPanel lub Canvas, efekt jest stosowany do drzewa wizualnego elementu lub wizualizacji, w tym 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 też