Partilhar via


CompositionEffectBrush Classe

Definição

Pinta um SpriteVisual com a saída de um efeito de filtro. A descrição do efeito de filtro é definida usando a 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
Herança
Object Platform::Object IInspectable CompositionObject CompositionBrush CompositionEffectBrush
Atributos

Exemplos

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

Comentários

As APIs de efeito permitem que os desenvolvedores personalizem como sua interface do usuário será renderizada. Isso pode ser algo tão simples quanto ajustar os níveis de saturação em uma imagem ou algo mais complexo, como encadear vários efeitos juntos e animar as propriedades de efeito para criar transições de aplicativo interessantes e experiências do usuário. Um efeito de composição é um grafo de operações que definem como produzir conteúdo gráfico com base em superfícies de composição. Por exemplo, o conteúdo de pixel das imagens. Os efeitos são aplicados a visuais na árvore e podem referenciar superfícies existentes.

Uma instância de CompositionEffectBrush é criada usando um CompositionEffectFactory com base em uma descrição de efeito especificada. CompositionEffectFactory usa o formato de descrição do efeito Win2D no namespace Microsoft.Graphics.Canvas.Effects (WinAppSDK (WinUI 3) / UWP (WinUI 2)).

Observação

Os efeitos que não têm suporte são marcados como [NoComposition] no namespace Referência da API Win2D para efeitos.

Um CompositionEffectBrush é aplicado a um SpriteVisual na árvore de composição.

As fontes para CompositionEffectBrush podem ser uma superfície ou textura existente, ou outro efeito que habilita o encadeamento de efeitos.

CompositionEffectBrush.Properties (herdado de CompositionObject.Properties) permite definir ou animar as propriedades animatáveis especificadas na chamada para Compositor. CreateEffectFactory usando o nome completo 'EffectName.PropertyName'.

As fontes de efeito podem ser definidas independentemente de outras instâncias compositionEffectBrush e as propriedades podem ser animadas independentemente de outras instâncias CompositionEffectBrush.

Depois que um grafo de efeito é declarado, o sistema compila o efeito usando sombreadores internos. Sombreadores personalizados não podem ser especificados.

Criando um CompositionEffect

Para criar e aplicar um efeito, você precisa executar as seguintes etapas:

  1. Crie uma descrição de efeito. Consulte o namespace Win2D , Namespace Microsoft.Graphics.Canvas.Effects (WinAppSDK (WinUI 3) / UWP (WinUI 2)), para obter tipos de efeito válidos.
  2. Defina qualquer fonte de efeito com uma instância de CompositionEffectSourceParameter ou outro efeito. Especificar outro efeito cria uma cadeia de efeitos.
  3. Crie um CompositionEffectFactory com Compositor. CreateEffectFactory usando a descrição do efeito como entrada.
  4. Crie uma instância do efeito usando CompositorEffectFactory. CreateBrush.
  5. Defina qualquer CompositionEffectSourceParameter usando CompositionEffectBrush. SetSourceParameter e o nome do parâmetro de origem conforme especificado anteriormente usando um CompositionEffectSourceParameter.
  6. Crie uma instância do SpriteVisual usando Compositor. CreateSpriteVisual.
  7. Defina a propriedade Brush do SpriteVisual como o efeito criado.
  8. Adicione o SpriteVisual à árvore de composição usando a propriedade Children de um ContainerVisual.

Propriedades

Comment

Uma cadeia de caracteres a ser associada ao CompositionObject.

(Herdado de CompositionObject)
Compositor

O Compositor usado para criar esse CompositionObject.

(Herdado de CompositionObject)
DispatcherQueue

Obtém o DispatcherQueue para o CompositionObject.

(Herdado de CompositionObject)
ImplicitAnimations

A coleção de animações implícitas anexadas a esse objeto.

(Herdado de CompositionObject)
Properties

A coleção de propriedades associadas ao CompositionObject.

(Herdado de CompositionObject)

Métodos

Close()

Fecha o CompositionObject e libera os recursos do sistema.

(Herdado de CompositionObject)
Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

(Herdado de CompositionObject)
GetSourceParameter(String)

Recupera um CompositionBrush associado a um determinado nome CompositionEffectSourceParameter .

PopulatePropertyInfo(String, AnimationPropertyInfo)

Define uma propriedade que pode ser animada.

(Herdado de CompositionObject)
SetSourceParameter(String, CompositionBrush)

Associa um nome declarado usando CompositionEffectSourceParameter a uma fonte de efeito.

StartAnimation(String, CompositionAnimation, AnimationController)

Conecta uma animação com a propriedade especificada do objeto e inicia a animação.

(Herdado de CompositionObject)
StartAnimation(String, CompositionAnimation)

Conecta uma animação com a propriedade especificada do objeto e inicia a animação.

(Herdado de CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Inicia um grupo de animação.

O método StartAnimationGroup em CompositionObject permite iniciar CompositionAnimationGroup. Todas as animações no grupo serão iniciadas ao mesmo tempo no objeto .

(Herdado de CompositionObject)
StopAnimation(String)

Desconecta uma animação da propriedade especificada e interrompe a animação.

(Herdado de CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Interrompe um grupo de animação.

(Herdado de CompositionObject)
TryGetAnimationController(String)

Retorna um AnimationController para a animação em execução na propriedade especificada.

(Herdado de CompositionObject)

Aplica-se a

Confira também