CompositionEffectBrush Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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:
- 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.
- Defina qualquer fonte de efeito com uma instância de CompositionEffectSourceParameter ou outro efeito. Especificar outro efeito cria uma cadeia de efeitos.
- Crie um CompositionEffectFactory com Compositor. CreateEffectFactory usando a descrição do efeito como entrada.
- Crie uma instância do efeito usando CompositorEffectFactory. CreateBrush.
- Defina qualquer CompositionEffectSourceParameter usando CompositionEffectBrush. SetSourceParameter e o nome do parâmetro de origem, conforme especificado anteriormente usando um CompositionEffectSourceParameter.
- Crie uma instância de SpriteVisual usando Compositor. CreateSpriteVisual.
- Defina a propriedade Brush do SpriteVisual como o efeito criado.
- 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) |