Condividi tramite


CompositionEffectBrush Classe

Definizione

Disegna un oggetto SpriteVisual con l'output di un effetto filtro. La descrizione dell'effetto filtro viene definita usando la classe CompositionEffectFactory .

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
Ereditarietà
Object Platform::Object IInspectable CompositionObject CompositionBrush CompositionEffectBrush
Attributi

Esempio

// 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); 

Commenti

Le API di gestione degli effetti consentono agli sviluppatori di personalizzare la modalità di rendering dell’interfaccia utente. Questo può essere qualcosa di semplice come regolare i livelli di saturazione su un'immagine o qualcosa di più complesso come concatenare numerosi effetti insieme e animare le proprietà dell'effetto per creare transizioni di applicazioni interessanti ed esperienze utente. Un effetto di composizione è un grafico di operazioni che definiscono come produrre contenuto grafico in base alle superfici di composizione. Ad esempio, il contenuto pixel delle immagini. Gli effetti vengono applicati agli oggetti visivi nell'albero e possono fare riferimento a superfici esistenti.

Viene creata un'istanza di CompositionEffectBrush usando compositionEffectFactory in base a una descrizione dell'effetto specificata. CompositionEffectFactory usa il formato di descrizione dell'effetto Win2D nello spazio dei nomi Microsoft.Graphics.Canvas.Effects (WinAppSDK (WinUI 3) / UWP (WinUI 2)).

Nota

Gli effetti che non sono supportati sono contrassegnati come [NoComposition] nello spazio dei nomi Delle API Win2D .

Un oggetto CompositionEffectBrush viene applicato a uno SpriteVisual nell'albero di composizione.

Le origini a CompositionEffectBrush possono essere una superficie o una trama esistente o un altro effetto che abilita il concatenamento degli effetti.

CompositionEffectBrush.Properties (ereditato da CompositionObject.Properties) consente di impostare o animare le proprietà animabili specificate nella chiamata a Compositor. CreateEffectFactory usando il nome completo 'EffectName.PropertyName'.

Le origini degli effetti possono essere impostate indipendentemente da altre istanze di CompositionEffectBrush e le proprietà possono essere animate indipendentemente da altre istanze di CompositionEffectBrush.

Dopo aver dichiarato un grafico degli effetti, il sistema compila l'effetto usando shader predefiniti. Non è possibile specificare shader personalizzati.

Creazione di un oggetto CompositionEffect

Per creare e applicare un effetto, è necessario seguire questa procedura:

  1. Creare una descrizione dell'effetto. Vedi lo spazio dei nomi Win2D , lo spazio dei nomi Microsoft.Graphics.Canvas.Effects(WinAppSDK (WinUI 3) / UWP (WinUI 2)), per i tipi di effetto validi.
  2. Impostare le origini degli effetti con un'istanza di CompositionEffectSourceParameter o un altro effetto. Se si specifica un altro effetto, viene creata una catena di effetti.
  3. Creare un compositionEffectFactory con Compositor. CreateEffectFactory usando la descrizione dell'effetto come input.
  4. Creare un'istanza dell'effetto usando CompositorEffectFactory. CreateBrush.
  5. Impostare qualsiasi compositionEffectSourceParameter usando CompositionEffectBrush. SetSourceParameter e il nome del parametro di origine come specificato in precedenza usando compositionEffectSourceParameter.
  6. Creare un'istanza di SpriteVisual usando Compositor. CreateSpriteVisual.
  7. Impostare la proprietà Brush di SpriteVisual sull'effetto creato.
  8. Aggiungere SpriteVisual all'albero di composizione usando la proprietà Children di un oggetto ContainerVisual.

Proprietà

Comment

Stringa da associare a CompositionObject.

(Ereditato da CompositionObject)
Compositor

Compositor utilizzato per creare questo CompositionObject.

(Ereditato da CompositionObject)
DispatcherQueue

Ottiene dispatcherQueue per CompositionObject.

(Ereditato da CompositionObject)
ImplicitAnimations

Raccolta di animazioni implicite associate a questo oggetto.

(Ereditato da CompositionObject)
Properties

Raccolta di proprietà associate a CompositionObject.

(Ereditato da CompositionObject)

Metodi

Close()

Chiude CompositionObject e rilascia le risorse di sistema.

(Ereditato da CompositionObject)
Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

(Ereditato da CompositionObject)
GetSourceParameter(String)

Recupera un oggetto CompositionBrush associato a un determinato nome CompositionEffectSourceParameter .

PopulatePropertyInfo(String, AnimationPropertyInfo)

Definisce una proprietà che può essere animata.

(Ereditato da CompositionObject)
SetSourceParameter(String, CompositionBrush)

Associa un nome dichiarato usando CompositionEffectSourceParameter a un'origine dell'effetto.

StartAnimation(String, CompositionAnimation, AnimationController)

Connette un'animazione con la proprietà specificata dell'oggetto e avvia l'animazione.

(Ereditato da CompositionObject)
StartAnimation(String, CompositionAnimation)

Connette un'animazione con la proprietà specificata dell'oggetto e avvia l'animazione.

(Ereditato da CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Avvia un gruppo di animazioni.

Il metodo StartAnimationGroup in CompositionObject consente di avviare CompositionAnimationGroup. Tutte le animazioni nel gruppo verranno avviate contemporaneamente sull'oggetto .

(Ereditato da CompositionObject)
StopAnimation(String)

Disconnette un'animazione dalla proprietà specificata e arresta l'animazione.

(Ereditato da CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Arresta un gruppo di animazioni.

(Ereditato da CompositionObject)
TryGetAnimationController(String)

Restituisce un oggetto AnimationController per l'animazione in esecuzione sulla proprietà specificata.

(Ereditato da CompositionObject)

Si applica a

Vedi anche