LayerVisual 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
其子级平展为单个层的 ContainerVisual。
public ref class LayerVisual sealed : ContainerVisual
/// [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 LayerVisual final : ContainerVisual
/// [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 LayerVisual final : ContainerVisual
[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 LayerVisual : ContainerVisual
[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 LayerVisual : ContainerVisual
Public NotInheritable Class LayerVisual
Inherits ContainerVisual
- 继承
- 属性
示例
将效果应用于 LayerVisual
private async void InitComposition()
{
Compositor compositor = ElementCompositionPreview.GetElementVisual(MyGrid).Compositor;
//Create LayerVisual
LayerVisual layerVisual = compositor.CreateLayerVisual();
layerVisual.Size = new Vector2(900,900);
//Create SpriteVisuals to use as LayerVisual child
SpriteVisual sv1 = compositor.CreateSpriteVisual();
sv1.Brush = compositor.CreateColorBrush(Windows.UI.Colors.Blue);
sv1.Size = new Vector2(300, 300);
sv1.Offset = new Vector3(200, 200, 0);
SpriteVisual sv2 = compositor.CreateSpriteVisual();
sv2.Brush = compositor.CreateColorBrush(Colors.Red);
sv2.Size = new Vector2(300, 300);
sv2.Offset = new Vector3(400, 400, 0);
//Add children to the LayerVisual
layerVisual.Children.InsertAtTop(sv1);
layerVisual.Children.InsertAtTop(sv2);
//Create Effect
var graphicsEffect = new GaussianBlurEffect
{
Name = "Blur",
Source = new CompositionEffectSourceParameter("Backdrop"),
BlurAmount = 10.0f,
BorderMode = EffectBorderMode.Hard,
Optimization = EffectOptimization.Balanced
};
var blurEffectFactory = compositor.CreateEffectFactory(graphicsEffect,
new[] { "Blur.BlurAmount" });
var blurBrush = blurEffectFactory.CreateBrush();
//Apply Effect
layerVisual.Effect = blurBrush;
ElementCompositionPreview.SetElementChildVisual(MyGrid, layerVisual);
}
添加 DropShadow
private async void InitComposition()
{
Compositor compositor = ElementCompositionPreview.GetElementVisual(MyGrid).Compositor;
//Create LayerVisual
LayerVisual layerVisual = compositor.CreateLayerVisual();
layerVisual.Size = new Vector2(900, 900);
//Create SpriteVisuals to use as LayerVisual child
SpriteVisual sv1 = compositor.CreateSpriteVisual();
sv1.Brush = compositor.CreateColorBrush(Windows.UI.Colors.Blue);
sv1.Size = new Vector2(300, 300);
sv1.Offset = new Vector3(200, 200, 0);
SpriteVisual sv2 = compositor.CreateSpriteVisual();
sv2.Brush = compositor.CreateColorBrush(Colors.Red);
sv2.Size = new Vector2(300, 300);
sv2.Offset = new Vector3(400, 400, 0);
//Add children to the LayerVisual
layerVisual.Children.InsertAtTop(sv1);
layerVisual.Children.InsertAtTop(sv2);
//Create DropShadow
DropShadow shadow = compositor.CreateDropShadow();
shadow.Color = Colors.DarkSlateGray;
shadow.Offset = new Vector3(40, 40, 0);
shadow.BlurRadius = 9;
shadow.SourcePolicy = CompositionDropShadowSourcePolicy.InheritFromVisualContent;
//Associate Shadow with LayerVisual
layerVisual.Shadow = shadow;
ElementCompositionPreview.SetElementChildVisual(MyGrid, layerVisual);
}
注解
LayerVisual 是一种特殊的输入类型,可用于选择视觉对象树。 使用 LayerVisual 隐式指定树输入。 将 EffectBrush 设置为 LayerVisual 的 Effect 属性时,EffectBrush 会自动使用 Root 位于 LayerVisual 的子树作为输入。 LayerVisual 的隐式输入适用于效果,如下所示:
- 如果效果有一个输入,则 EffectBrush 将使用 Root 位于 LayerVisual 的子树作为输入。
- 如果效果有 2 个输入,则 EffectBrush 的第一个无界输入使用 Root 位于 LayerVisual 的子树作为输入。
- 系统不允许将输入为 0 的效果或所有输入都绑定到 SurfaceBrush 的效果设置为 LayerVisual 的 EffectBrush 的 EffectBrush 属性。 这会引发异常。
属性
AnchorPoint |
视觉对象上要定位在视觉对象偏移量的点。 值根据视觉对象的大小进行规范化。 可进行动画处理。 (继承自 Visual) |
BackfaceVisibility |
指定在 3D 转换期间视觉对象的背面是否可见。 (继承自 Visual) |
BorderMode |
指定如何组合与视觉对象关联的位图和剪辑的边缘,或与此视觉对象关联的子树中的所有视觉对象。 在父视觉对象处设置 BorderMode 将影响子树中的所有子视觉对象,并且可以在每个子视觉对象上选择性地关闭。 (继承自 Visual) |
CenterPoint |
发生旋转或缩放的点。 可进行动画处理 (继承自 Visual) |
Children |
ContainerVisual 的子级。 (继承自 ContainerVisual) |
Clip |
指定视觉对象的剪辑区域。 呈现视觉对象时,仅显示位于剪辑区域内的视觉对象部分,而延伸至剪辑区域之外的任何内容将剪切 (即不显示) 。 (继承自 Visual) |
Comment |
要与 CompositionObject 关联的字符串。 (继承自 CompositionObject) |
CompositeMode |
指定视觉对象的位图与屏幕的混合方式。 (继承自 Visual) |
Compositor |
用于创建此 CompositionObject 的 Compositor。 (继承自 CompositionObject) |
DispatcherQueue |
获取 CompositionObject 的 DispatcherQueue。 (继承自 CompositionObject) |
Effect |
要应用于 LayerVisual 子级的平展表示形式的效果。 |
ImplicitAnimations |
附加到此 对象的隐式动画的集合。 (继承自 CompositionObject) |
IsHitTestVisible |
获取或设置一个值,该值指示根位于此视觉对象的可视化子树是否参与命中测试。 (继承自 Visual) |
IsPixelSnappingEnabled |
获取或设置一个值,该值指示合成引擎是否将呈现的视觉对象与像素边界对齐。 (继承自 Visual) |
IsVisible |
指示子视觉对象的视觉对象及其整个子树是否可见。 (继承自 Visual) |
Offset |
视觉对象相对于其父级的偏移量或根视觉对象相对于承载视觉对象的窗口左上角的偏移量。 可进行动画处理。 (继承自 Visual) |
Opacity |
视觉对象的不透明度。 可进行动画处理。 不透明度属性确定视觉对象的透明度(如果有),并且是一个介于 0 到 1 的值。 0 表示完全透明,1 表示完全不透明。 不透明度属性为 0 的视觉对象仍存在于树中。 与视觉对象上的其他属性一样,可以使用 Windows、UI 对不透明度进行动画处理。合成动画系统。 (继承自 Visual) |
Orientation |
描述将应用于视觉对象的 3D 空间中的方向和旋转的四元数。 可进行动画处理。 (继承自 Visual) |
Parent |
可见对象的父对象。 (继承自 Visual) |
ParentForTransform |
指定构成此视觉对象的坐标系的视觉对象。 (继承自 Visual) |
Properties |
与 CompositionObject 关联的属性的集合。 (继承自 CompositionObject) |
RelativeOffsetAdjustment |
指定视觉对象相对于其父视觉对象大小的偏移量。 (继承自 Visual) |
RelativeSizeAdjustment |
获取或设置视觉对象相对于其父视觉对象的大小的大小。 (继承自 Visual) |
RotationAngle |
视觉对象的旋转角度(以弧度为单位)。 可进行动画处理。 (继承自 Visual) |
RotationAngleInDegrees |
视觉对象的旋转角度(以度为单位)。 可进行动画处理。 (继承自 Visual) |
RotationAxis |
要围绕视觉对象旋转的轴。 可进行动画处理。 (继承自 Visual) |
Scale |
要应用于视觉对象的缩放比例。 (继承自 Visual) |
Shadow |
要应用于 LayerVisual 子级的平展表示形式的阴影。 |
Size |
视觉对象的宽度和高度。 可进行动画处理。 (继承自 Visual) |
TransformMatrix |
要应用于视觉对象的转换矩阵。 可进行动画处理。 (继承自 Visual) |
方法
Close() |
关闭 CompositionObject 并释放系统资源。 (继承自 CompositionObject) |
Dispose() |
执行与释放或重置非托管资源关联的应用程序定义的任务。 (继承自 CompositionObject) |
PopulatePropertyInfo(String, AnimationPropertyInfo) |
定义可进行动画处理的属性。 (继承自 CompositionObject) |
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) |