Übersicht über Bitmapeffekte
Aktualisiert: November 2007
Mit Bitmapeffekten können Designer und Entwickler visuelle Effekte auf gerenderte Windows Presentation Foundation (WPF)-Inhalte anwenden. Mit Bitmapeffekten können sie z. B. einfach einen DropShadowBitmapEffect-Effekt oder Weichzeichnereffekt auf ein Bild oder eine Schaltfläche anwenden.
Dieses Thema enthält folgende Abschnitte.
- WPF-Bitmapeffekte
- So wird eine Effekt angewendet
- Erstellen von benutzerdefinierten Effekten
- Verwandte Abschnitte
WPF-Bitmapeffekte
Bitmapeffekte (BitmapEffect-Objekt) sind einfache Pixelverarbeitungsvorgänge. Ein Bitmapeffekt akzeptiert eine BitmapSource als Eingabe und erzeugt eine neue BitmapSource nach Anwenden des Effekts, z. B. eines Weichzeichners oder Schlagschattens. Jeder Bitmapeffekt macht Eigenschaften verfügbar, die die Filtereigenschaften steuern können, z. B. Radius von BlurBitmapEffect.
Als Spezialfall können in WPF Effekte als Eigenschaften für aktive Visual-Objekte festgelegt werden, z. B. eine Button oder ein TextBox. Die Pixelverarbeitung wird angewendet und zur Laufzeit gerendert. In diesem Fall wird zur Renderingzeit ein Visual automatisch in die BitmapSource-Entsprechung konvertiert und dient als Eingabe für den BitmapEffect. Die Ausgabe ersetzt das Standardrenderingverhalten des Visual-Objekts. Aus diesem Grund erzwingen BitmapEffect-Objekte, dass visuelle Objekte ausschließlich in der Software gerendert werden, d. h. visuelle Objekte müssen ohne Hardwarebeschleunigung auskommen, wenn Effekte angewendet werden.
BlurBitmapEffect simuliert den Blick auf ein Objekt durch eine unscharfe Linse. Ein Beispiel finden Sie unter Gewusst wie: Anwenden eines Weichzeichnereffekts auf grafische Elemente.
OuterGlowBitmapEffect erstellt einen farbigen Lichthof um die Umgrenzung eines Objekts. Ein Beispiel finden Sie unter Gewusst wie: Erstellen eines Leuchteffekts am äußeren Rand eines Objekts.
DropShadowBitmapEffect erstellt einen Schatten hinter einem Objekt. Ein Beispiel finden Sie unter Gewusst wie: Erstellen eines visuellen Schlagschatteneffekts.
BevelBitmapEffect erstellt eine Abschrägung, die die Oberfläche eines Bilds entsprechend einer angegebenen Kurve erhöht. Ein Beispiel finden Sie unter Gewusst wie: Erstellen eines abgeschrägten visuellen Effekts.
EmbossBitmapEffect erstellt ein Bump-Mapping eines Visual-Objekts, um den Eindruck von Tiefe und Textur von einer animierten Lichtquelle zu vermitteln. Ein Beispiel finden Sie unter Gewusst wie: Erstellen eines geprägten visuellen Effekts.
Tipp
WPF-Bitmapeffekte werden im Softwaremodus gerendert. Jedes Objekt, das einen Effekt anwendet, wird auch in der Software gerendert. Die Leistung wird am stärksten beeinträchtigt, wenn Bitmapeffekte für große visuelle Objekte verwendet oder Eigenschaften eines Bitmapeffekts animiert werden. Das bedeutet nicht, dass Sie überhaupt keine Bitmapeffekte auf diese Art einsetzen sollten, aber Sie sollten vorsichtig damit umgehen und mit gründlichen Tests sicherstellen, dass die Benutzerfreundlichkeit erhalten bleibt.
Tipp
WPF-Bitmapeffekte unterstützen keine Ausführung unter teilweiser Vertrauenswürdigkeit. Eine Anwendung muss über Berechtigungen für volle Vertrauenswürdigkeit verfügen, um Bitmapeffekte zu verwenden.
So wird eine Effekt angewendet
BitmapEffect ist eine Eigenschaft für Visual. Daher ist das Anwenden von Effekten auf visuelle Objekte, z. B. eine Button, ein Image, DrawingVisual oder UIElement, so einfach wie das Festlegen einer Eigenschaft. BitmapEffect kann auf ein einzelnes BitmapEffect-Objekt festgelegt werden, oder mehrere Effekte können mithilfe des BitmapEffectGroup-Objekts verkettet werden.
Im folgenden Beispiel wird die Anwendung eines BitmapEffect in Extensible Application Markup Language (XAML) veranschaulicht.
<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>
Im folgenden Beispiel wird die Anwendung eines BitmapEffect in Code veranschaulicht.
// 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;
Beispiele, in denen gezeigt wird, wie mehrere Effekte mithilfe des BitmapEffectGroup-Objekts angewendet werden, finden Sie unter Gewusst wie: Erstellen mehrerer visueller Effekte.
Tipp
Wenn ein BitmapEffect auf einen Layoutcontainer angewendet wird, z. B. DockPanel oder Canvas, wird der Effekt auf die visuelle Struktur des Elements oder visuellen Objekts angewendet, einschließlich aller untergeordneter Elemente.
Erstellen von benutzerdefinierten Effekten
WPF stellt auch nicht verwaltete Schnittstellen bereit, um benutzerdefinierte Effekte zu erstellen, die in verwalteten WPF-Anwendungen verwendet werden können. Weiteres Referenzmaterial zum Erstellen von benutzerdefinierten Bitmapeffekten finden Sie in der Dokumentation Unmanaged WPF Bitmap Effect.
Ein Beispiel für einen benutzerdefinierten Bitmapeffekt finden Sie unter Beispiel für benutzerdefinierten BitmapEffect: RGBFilter. Dieses Beispiel enthält die nicht verwalteten Schnittstellen, die zum Erstellen eines benutzerdefinierten Effekts benötigt werden, eine verwaltete Interoperabilitätsschicht und eine WPF-Anwendung, die den benutzerdefinierten Effekt verwendet.
Siehe auch
Aufgaben
Gewusst wie: Animieren eines visuellen Weichzeichnereffekts
Gewusst wie: Animieren eines Leuchteffekts
Gewusst wie: Animieren eines visuellen Schlagschatteneffekts
Gewusst wie: Animieren eines abgeschrägten visuellen Effekts
Gewusst wie: Animieren eines geprägten visuellen Effekts
Konzepte
Übersicht über die Bildverarbeitung
Windows Presentation Foundation-Sicherheit
Übersicht über das Grafikrendering in Windows Presentation Foundation
Optimieren der Leistung: 2D-Grafiken und Bildverarbeitung