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 a interface do usuário é renderizada. Isso pode ser algo tão simples quanto ajustar níveis de saturação em uma imagem ou algo mais complexo, como encadear inúmeros 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 define como produzir conteúdo gráfico com base em superfícies de composição. Por exemplo, o conteúdo de pixel de 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 Microsoft. Namespace Graphics.Canvas.Effects (SDK do Aplicativo Windows (WinUI 3) / UWP (WinUI 2)).

Note

Os efeitos que não têm suporte são marcados como [NoComposition] na Referência da API Win2D para o namespace de 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, Microsoft. Namespace Graphics.Canvas.Effects (SDK do Aplicativo Windows (WinUI 3) / UWP (WinUI 2)), para 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 de 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

Nome Description
Comment

Uma cadeia de caracteres a ser associada ao CompositionObject.

(Herdado de CompositionObject)
Compositor

O Compositor usado para criar este 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

Nome Description
Close()

Fecha o CompositionObject e libera os recursos do sistema.

(Herdado de CompositionObject)
Dispose()

Executa tarefas definidas pelo aplicativo associadas à liberação, 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