CompositionEffectBrush Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Zeichnet ein SpriteVisual mit der Ausgabe eines Filtereffekts. Die Beschreibung des Filtereffekts wird mithilfe der CompositionEffectFactory-Klasse definiert.
public ref class CompositionEffectBrush sealed : CompositionBrush
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CompositionEffectBrush final : CompositionBrush
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
class CompositionEffectBrush final : CompositionBrush
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CompositionEffectBrush : CompositionBrush
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public sealed class CompositionEffectBrush : CompositionBrush
Public NotInheritable Class CompositionEffectBrush
Inherits CompositionBrush
- Vererbung
- Attribute
Beispiele
// Create an effect description
GaussianBlurEffect blurEffect = new GaussianBlurEffect()
{
Name = "Blur",
BlurAmount = 1.0f,
BorderMode = EffectBorderMode.Hard,
Optimization = EffectOptimization.Balanced
};
blurEffect.Source = new CompositionEffectSourceParameter("source");
CompositionEffectFactory blurEffectFactory = _compositor.CreateEffectFactory(blurEffect);
CompositionEffectBrush blurBrush = blurEffectFactory.CreateBrush();
// Create a BackdropBrush and bind it to the EffectSourceParameter “source”
CompositionBackdropBrush backdropBrush = _compositor.CreateBackdropBrush();
blurBrush.SetSourceParameter("source", backdropBrush);
// The SpriteVisual to apply the blur BackdropBrush to
// This will cause everything behind this SpriteVisual to be blurred
SpriteVisual blurSprite = _compositor.CreateSpriteVisual();
blurSprite.Brush = blurBrush;
// Set blurSprite as a child visual of a XAML element
ElementCompositionPreview.SetElementChildVisual(blurArea, blurSprite);
Hinweise
Mit den Effekt-APIs können Entwickler anpassen, wie ihre Benutzeroberfläche gerendert wird. Dies kann so einfach sein, wie das Anpassen von Sättigungsebenen auf einem Bild oder etwas komplexer ist, z. B. das Verketten zahlreicher Effekte und das Animieren der Effekteigenschaften, um interessante Anwendungsübergänge und Benutzererfahrungen zu erzeugen. Ein Kompositionseffekt ist ein Diagramm von Vorgängen, die definieren, wie grafische Inhalte basierend auf Kompositionsoberflächen erzeugt werden. Beispielsweise der Pixelinhalt von Bildern. Effekte werden auf visuelle Elemente in der Struktur angewendet und können auf vorhandene Oberflächen verweisen.
Eine Instanz von CompositionEffectBrush wird mithilfe einer CompositionEffectFactory basierend auf einer angegebenen Effektbeschreibung erstellt. CompositionEffectFactory verwendet das Win2D-Effektbeschreibungsformat im Microsoft. Graphics.Canvas.Effects-Namespace (Windows App SDK (WinUI 3) / UWP (WinUI 2)).
Hinweis
Nicht unterstützte Effekte werden in der Win2D-API-Referenz für Effekte als [NoComposition] gekennzeichnet.
Ein CompositionEffectBrush wird auf ein SpriteVisual in der Kompositionsstruktur angewendet.
Quellen für CompositionEffectBrush können eine vorhandene Oberfläche oder Textur oder ein anderer Effekt sein, der die Effektkette ermöglicht.
CompositionEffectBrush.Properties (geerbt von CompositionObject.Properties) ermöglicht das Festlegen oder Animieren der animierbaren Eigenschaften, die im Aufruf von Compositor angegeben wurden. CreateEffectFactory mit dem vollständigen Namen 'EffectName.PropertyName'
Effektquellen können unabhängig von anderen CompositionEffectBrush-Instanzen festgelegt werden, und Eigenschaften können unabhängig von anderen CompositionEffectBrush-Instanzen animiert werden.
Nachdem ein Effektdiagramm deklariert wurde, kompiliert das System den Effekt mithilfe integrierter Shader. Benutzerdefinierte Shader können nicht angegeben werden.
Erstellen eines CompositionEffect
Zum Erstellen und Anwenden eines Effekts müssen Sie die folgenden Schritte ausführen:
- Erstellen Sie eine Effektbeschreibung. Weitere Informationen finden Sie im Win2D-NamespaceMicrosoft. Graphics.Canvas.Effects-Namespace (Windows App SDK (WinUI 3) / UWP (WinUI 2)) für gültige Effekttypen.
- Legen Sie alle Effektquellen mit einer Instanz von CompositionEffectSourceParameter oder einem anderen Effekt fest. Wenn Sie einen anderen Effekt angeben, wird eine Effektkette erstellt.
- Erstellen Sie eine CompositionEffectFactory mit Kompositor. CreateEffectFactory mithilfe der Effektbeschreibung als Eingabe.
- Erstellen Sie eine Instanz des Effekts mithilfe von CompositorEffectFactory. CreateBrush.
- Legen Sie "CompositionEffectSourceParameter" mithilfe von CompositionEffectBrush fest. SetSourceParameter und der Name des Quellparameters, wie zuvor mithilfe eines CompositionEffectSourceParameter angegeben.
- Erstellen Sie eine Instanz von SpriteVisual mithilfe von Compositor. CreateSpriteVisual.
- Legen Sie die Brush-Eigenschaft des SpriteVisual auf den erstellten Effekt fest.
- Fügen Sie spriteVisual der Kompositionsstruktur mithilfe der Children-Eigenschaft eines ContainersVisual hinzu.
Eigenschaften
| Name | Beschreibung |
|---|---|
| Comment |
Eine Zeichenfolge, die dem CompositionObject zugeordnet werden soll. (Geerbt von CompositionObject) |
| Compositor |
Der Kompositor , der zum Erstellen dieses CompositionObjects verwendet wurde. (Geerbt von CompositionObject) |
| DispatcherQueue |
Ruft den DispatcherQueue für das CompositionObject ab. (Geerbt von CompositionObject) |
| ImplicitAnimations |
Die Auflistung impliziter Animationen, die diesem Objekt zugeordnet sind. (Geerbt von CompositionObject) |
| Properties |
Die Auflistung der Eigenschaften, die dem CompositionObject zugeordnet sind. (Geerbt von CompositionObject) |
Methoden
| Name | Beschreibung |
|---|---|
| Close() |
Schließt das CompositionObject und gibt Systemressourcen frei. (Geerbt von CompositionObject) |
| Dispose() |
Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind. (Geerbt von CompositionObject) |
| GetSourceParameter(String) |
Ruft einen CompositionBrush ab, der einem bestimmten CompositionEffectSourceParameter-Namen zugeordnet ist. |
| PopulatePropertyInfo(String, AnimationPropertyInfo) |
Definiert eine Eigenschaft, die animiert werden kann. (Geerbt von CompositionObject) |
| SetSourceParameter(String, CompositionBrush) |
Ordnet einen mit CompositionEffectSourceParameter deklarierten Namen einer Effektquelle zu. |
| StartAnimation(String, CompositionAnimation, AnimationController) |
Verbindet eine Animation mit der angegebenen Eigenschaft des Objekts und startet die Animation. (Geerbt von CompositionObject) |
| StartAnimation(String, CompositionAnimation) |
Verbindet eine Animation mit der angegebenen Eigenschaft des Objekts und startet die Animation. (Geerbt von CompositionObject) |
| StartAnimationGroup(ICompositionAnimationBase) |
Startet eine Animationsgruppe. Mit der StartAnimationGroup-Methode auf CompositionObject können Sie CompositionAnimationGroup starten. Alle Animationen in der Gruppe werden gleichzeitig für das Objekt gestartet. (Geerbt von CompositionObject) |
| StopAnimation(String) |
Trennt eine Animation von der angegebenen Eigenschaft und stoppt die Animation. (Geerbt von CompositionObject) |
| StopAnimationGroup(ICompositionAnimationBase) |
Beendet eine Animationsgruppe. (Geerbt von CompositionObject) |
| TryGetAnimationController(String) |
Gibt einen AnimationController für die Animation zurück, die auf der angegebenen Eigenschaft ausgeführt wird. (Geerbt von CompositionObject) |