CompositionEffectBrush 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用筛选器效果的输出绘制 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
- 继承
- 属性
示例
// 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 创建的。 CompositionEffectFactory 在 Microsoft.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
若要创建并应用效果,需要执行以下步骤:
- 创建效果说明。 有关有效效果类型,请参阅 Win2D 命名空间、 Microsoft.Graphics.Canvas.Effects 命名空间 (WinAppSDK (WinUI 3) / UWP (WinUI 2) ) 。
- 使用 CompositionEffectSourceParameter 实例或其他效果设置任何效果源。 指定另一个效果会创建一个效果链。
- 使用 Compositor 创建 CompositionEffectFactory。使用效果说明作为输入的 CreateEffectFactory 。
- 使用 CompositorEffectFactory 创建效果的实例。CreateBrush。
- 使用 CompositionEffectBrush 设置任何 CompositionEffectSourceParameter。SetSourceParameter 以及前面使用 CompositionEffectSourceParameter 指定的源参数的名称。
- 使用 Compositor 创建 SpriteVisual 的 实例。CreateSpriteVisual。
- 将 SpriteVisual 的 Brush 属性设置为创建的效果。
- 使用 ContainerVisual 的 Children 属性将 SpriteVisual 添加到合成树。
属性
Comment |
要与 CompositionObject 关联的字符串。 (继承自 CompositionObject) |
Compositor |
用于创建此 CompositionObject 的 Compositor。 (继承自 CompositionObject) |
DispatcherQueue |
获取 CompositionObject 的 DispatcherQueue。 (继承自 CompositionObject) |
ImplicitAnimations |
附加到此对象的隐式动画集合。 (继承自 CompositionObject) |
Properties |
与 CompositionObject 关联的属性的集合。 (继承自 CompositionObject) |