CompositionEffectBrush 类

定义

使用筛选器效果的输出绘制 SpriteVisual。 筛选器效果说明是使用 CompositionEffectFactory 类定义的。

public ref class CompositionEffectBrush sealed : CompositionBrush
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 131072)]
/// [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.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 131072)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CompositionEffectBrush : CompositionBrush
Public NotInheritable Class CompositionEffectBrush
Inherits CompositionBrush
继承
Object Platform::Object IInspectable CompositionObject CompositionBrush CompositionEffectBrush
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10586.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v2.0 中引入)

示例

// 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 命名空间中使用 Win2D 效果说明格式。

注意

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

CompositionEffectBrush 应用于合成树中的 SpriteVisual

CompositionEffectBrush 的源可以是现有的图面或纹理,也可以是另一种启用效果链接的效果。

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

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

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

创建 CompositionEffect

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

  1. 创建效果说明。 有关有效效果类型,请参阅 Win2D 命名空间 Microsoft.Graphics.Canvas.Effects
  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

用于创建此 CompositionObjectCompositor

(继承自 CompositionObject)
Dispatcher

CompositionObject 的调度程序。

(继承自 CompositionObject)
DispatcherQueue

获取 CompostionObject 的 DispatcherQueue

(继承自 CompositionObject)
ImplicitAnimations

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

(继承自 CompositionObject)
Properties

CompositionObject 关联的属性的集合。

(继承自 CompositionObject)

方法

Close()

关闭 CompositionObject 并释放系统资源。

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

连接和动画。

(继承自 CompositionObject)
DisconnectAnimation(String)

断开动画的连接。

(继承自 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)

适用于

另请参阅