CompositionEffectBrush 类

定义

使用筛选器效果的输出绘制 SpriteVisual。 筛选器效果说明是使用 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
继承
Object Platform::Object IInspectable CompositionObject CompositionBrush CompositionEffectBrush
属性

示例

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

注解

效果 API 使开发人员可以自定义其 UI 的呈现方式。 这可以像调整图像上的饱和度级别一样简单,也可以是更复杂的操作,例如将大量效果链接在一起,对效果属性进行动画处理,以创建有趣的应用程序过渡和用户体验。 合成效果是一个操作图,用于定义如何基于合成图面生成图形内容。 例如,图像的像素内容。 效果应用于树中的视觉对象,并且可以引用现有图面。

CompositionEffectBrush 的实例是根据指定的效果说明使用 CompositionEffectFactory 创建的。 CompositionEffectFactoryMicrosoft.Graphics.Canvas.Effects 命名空间 (WinAppSDK (WinUI 3) UWP ( / WinUI 2) ) 中使用 Win2D 效果说明格式。

注意

不支持的效果在效果命名空间的 Win2D API 参考中标记为 [NoComposition]。

CompositionEffectBrush 应用于合成树中的 SpriteVisual

CompositionEffectBrush 的源可以是现有表面或纹理,也可以是启用效果链接的其他效果。

从 CompositionObject.Properties) 继承 (CompositionEffectBrush.Properties 允许设置或对 Compositor 调用中指定的可动画属性进行动画处理。CreateEffectFactory 使用其完整的“EffectName.PropertyName”名称。

效果源可以独立于其他 CompositionEffectBrush 实例进行设置,属性可以独立于其他 CompositionEffectBrush 实例进行动画处理。

声明效果图后,系统会使用内置着色器编译效果。 无法指定自定义着色器。

创建 CompositionEffect

若要创建并应用效果,需要执行以下步骤:

  1. 创建效果说明。 有关有效效果类型,请参阅 Win2D 命名空间、 Microsoft.Graphics.Canvas.Effects 命名空间 (WinAppSDK (WinUI 3) / UWP (WinUI 2) ) 。
  2. 使用 CompositionEffectSourceParameter 实例或其他效果设置任何效果源。 指定另一个效果会创建一个效果链。
  3. 使用 Compositor 创建 CompositionEffectFactory。使用效果说明作为输入的 CreateEffectFactory
  4. 使用 CompositorEffectFactory 创建效果的实例。CreateBrush
  5. 使用 CompositionEffectBrush 设置任何 CompositionEffectSourceParameter。SetSourceParameter 以及前面使用 CompositionEffectSourceParameter 指定的源参数的名称。
  6. 使用 Compositor 创建 SpriteVisual 的 实例。CreateSpriteVisual
  7. SpriteVisualBrush 属性设置为创建的效果。
  8. 使用 ContainerVisual 的 Children 属性将 SpriteVisual 添加到合成树。

属性

Comment

要与 CompositionObject 关联的字符串。

(继承自 CompositionObject)
Compositor

用于创建此 CompositionObject 的 Compositor

(继承自 CompositionObject)
DispatcherQueue

获取 CompositionObject 的 DispatcherQueue。

(继承自 CompositionObject)
ImplicitAnimations

附加到此对象的隐式动画集合。

(继承自 CompositionObject)
Properties

CompositionObject 关联的属性的集合。

(继承自 CompositionObject)

方法

Close()

关闭 CompositionObject 并释放系统资源。

(继承自 CompositionObject)
Dispose()

执行与释放或重置非托管资源关联的应用程序定义的任务。

(继承自 CompositionObject)
GetSourceParameter(String)

检索与给定 CompositionEffectSourceParameter 名称关联的 CompositionBrush。

PopulatePropertyInfo(String, AnimationPropertyInfo)

定义可进行动画处理的属性。

(继承自 CompositionObject)
SetSourceParameter(String, CompositionBrush)

将使用 CompositionEffectSourceParameter 声明的名称关联到效果源。

StartAnimation(String, CompositionAnimation, AnimationController)

使用 对象的指定属性连接动画并启动动画。

(继承自 CompositionObject)
StartAnimation(String, CompositionAnimation)

使用 对象的指定属性连接动画并启动动画。

(继承自 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

启动动画组。

CompositionObject 上的 StartAnimationGroup 方法可用于启动 CompositionAnimationGroup。 组中的所有动画将同时在 对象上启动。

(继承自 CompositionObject)
StopAnimation(String)

断开动画与指定属性的连接并停止动画。

(继承自 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

停止动画组。

(继承自 CompositionObject)
TryGetAnimationController(String)

返回指定属性上运行的动画的 AnimationController。

(继承自 CompositionObject)

适用于

另请参阅