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
Mithilfe von Effekt-APIs können Entwickler anpassen, wie ihre Benutzeroberfläche gerendert wird. Dies kann so einfach sein, wie das Anpassen von Sättigungsgraden für ein Bild oder etwas komplexeres wie das Verketten zahlreicher Effekte und das Animieren der Effekteigenschaften, um interessante Anwendungsübergänge und Benutzeroberflächen zu erstellen. Ein Kompositionseffekt ist ein Diagramm von Vorgängen, die definieren, wie grafische Inhalte basierend auf Kompositionsoberflächen erstellt werden. Beispielsweise der Pixelinhalt von Bildern. Effekte werden auf Visuals in der Struktur angewendet und können auf vorhandene Oberflächen verweisen.
Ein instance von CompositionEffectBrush wird mithilfe einer CompositionEffectFactory basierend auf einer angegebenen Effektbeschreibung erstellt. CompositionEffectFactory verwendet das Win2D-Effektbeschreibungsformat im Microsoft.Graphics.Canvas.Effects-Namespace (WinAppSDK (WinUI 3) / UWP (WinUI 2)).
Hinweis
Effekte, die nicht unterstützt werden, werden im Win2D-API-Referenznamespace als [NoComposition] markiert.
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 aktiviert.
CompositionEffectBrush.Properties (geerbt von CompositionObject.Properties) ermöglicht das Festlegen oder Animieren der abstellbaren Eigenschaften, die im Aufruf von Compositor angegeben wurden. Erstellen SieEffectFactory 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 einer CompositionEffect-Datei
Zum Erstellen und Anwenden eines Effekts müssen Sie die folgenden Schritte ausführen:
- Erstellen Sie eine Effektbeschreibung. Gültige Effekttypen finden Sie im Win2D-NamespaceMicrosoft.Graphics.Canvas.Effects-Namespace(WinAppSDK (WinUI 3) / UWP (WinUI 2)).
- Legen Sie alle Effektquellen mit einem instance compositionEffectSourceParameter oder einem anderen Effekt fest. Wenn Sie einen anderen Effekt angeben, wird eine Effektkette erstellt.
- Erstellen Sie eine CompositionEffectFactory mit Compositor. CreateEffectFactory mit der Effektbeschreibung als Eingabe.
- Erstellen Sie mit CompositorEffectFactory eine instance des Effekts.CreateBrush.
- Legen Sie beliebige CompositionEffectSourceParameter mithilfe von CompositionEffectBrush fest. SetSourceParameter und der Name des Quellparameters, wie zuvor mithilfe eines CompositionEffectSourceParameter angegeben.
- Erstellen Sie mit Compositor eine instance von SpriteVisual.CreateSpriteVisual.
- Legen Sie die Brush-Eigenschaft des SpriteVisual auf den erstellten Effekt fest.
- Fügen Sie spriteVisual der Kompositionsstruktur mithilfe der Children-Eigenschaft eines ContainerVisual hinzu.
Eigenschaften
Comment |
Eine Zeichenfolge, die dem CompositionObject zugeordnet werden soll. (Geerbt von CompositionObject) |
Compositor |
Der Compositor , der zum Erstellen dieses CompositionObject verwendet wird. (Geerbt von CompositionObject) |
DispatcherQueue |
Ruft den DispatcherQueue für das CompositionObject ab. (Geerbt von CompositionObject) |
ImplicitAnimations |
Die Auflistung impliziter Animationen, die diesem Objekt angefügt sind. (Geerbt von CompositionObject) |
Properties |
Die Auflistung von Eigenschaften, die dem CompositionObject zugeordnet sind. (Geerbt von CompositionObject) |
Methoden
Close() |
Schließt das CompositionObject und gibt Systemressourcen frei. (Geerbt von CompositionObject) |
Dispose() |
Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen. (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 für 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 beendet 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 für die angegebene Eigenschaft ausgeführt wird. (Geerbt von CompositionObject) |