Przegląd Efekty mapy bitowej
Efekty mapy bitowej umożliwiają projektantom i deweloperom stosowanie efektów wizualnych Windows Presentation Foundation (WPF). Na przykład efekty mapy bitowej umożliwiają łatwe zastosowanie efektu DropShadowBitmapEffect lub efektu rozmytego do obrazu lub przycisku.
Ważne
W .NET Framework 4 lub nowszej klasa jest BitmapEffect przestarzała. Jeśli spróbujesz użyć klasy BitmapEffect , wystąpi przestarzały wyjątek. Nie przestarzałą alternatywą dla BitmapEffect klasy jest Effect klasa . W większości sytuacji klasa Effect jest znacznie szybsza.
Efekty mapy bitowej WPF
Efekty mapy bitowej (BitmapEffect obiekt) to proste operacje przetwarzania pikseli. Efekt mapy bitowej przyjmuje element BitmapSource jako BitmapSource dane wejściowe i tworzy nowy po zastosowaniu efektu, takiego jak rozmycie lub cieniowanie. Każdy efekt mapy bitowej uwidacznia właściwości, które mogą kontrolować właściwości filtrowania, takie jak RadiusBlurBitmapEffect.
W specjalnym przypadku w WPF efekty mogą być ustawiane jako Visual właściwości obiektów na żywo, takich jak Button lub TextBox. Przetwarzanie pikseli jest stosowane i renderowane w czasie uruchamiania. W tym przypadku w czasie renderowania metoda jest VisualBitmapSource automatycznie konwertowana na jej odpowiednik i jest do nich wprowadzane jako dane wejściowe BitmapEffect. Dane wyjściowe zastępują Visual domyślne zachowanie renderowania obiektu. Z tego powodu obiekty BitmapEffect wymuszają renderowanie wizualizacji tylko w oprogramowaniu, czyli brak przyspieszenia sprzętowego wizualizacji w przypadku zastosowania efektów.
BlurBitmapEffect symuluje obiekt, który pojawia się poza fokusem.
OuterGlowBitmapEffect tworzy obwódkę koloru wokół obwodu obiektu.
DropShadowBitmapEffect Tworzy w tle za obiektem.
BevelBitmapEffect tworzy poziomą, która podnosi powierzchnię obrazu zgodnie z określoną krzywą.
EmbossBitmapEffect Tworzy mapowanie wyboju typu , Visual aby zrobić wrażenie głębokości i tekstury ze źródła sztucznego światła.
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 w 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 w ten sposób, ale należy zachować ostrożność i dokładnie przetestować, aby upewnić się, że użytkownicy korzystają z spodziewanych funkcji.
Uwaga
Efekty mapy bitowej WPF nie obsługują częściowego wykonywania zaufania. Aby można było używać efektów mapy bitowej, aplikacja musi mieć pełne uprawnienia zaufania.
Jak zastosować efekt
BitmapEffect to właściwość w obiekcie Visual. W związku z tym stosowanie efektów do wizualizacji, Buttontakich jak , Image, DrawingVisuallub UIElement, jest tak proste, jak ustawienie właściwości. BitmapEffect Można ustawić na pojedynczy obiekt BitmapEffect lub wiele efektów można utworzyć łańcuch przy użyciu BitmapEffectGroup obiektu .
W poniższym przykładzie pokazano, jak zastosować w BitmapEffect języku Extensible Application Markup Language (XAML).
<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ć w BitmapEffect 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
Gdy element BitmapEffect jest stosowany do kontenera układu, DockPanel takiego jak lub Canvas, efekt jest stosowany do drzewa wizualnego elementu lub wizualizacji, łącznie ze wszystkimi jego elementami podrzędnymi.
Tworzenie efektów niestandardowych
WPF udostępnia również nieza zarządzanie interfejsami 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ę Unmanaged WPF Bitmap Effect (Efekt niezamówiony mapy bitowej WPF ).