CompositionSurfaceBrush 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用 ICompositionSurface 中的像素绘制 SpriteVisual 。
public ref class CompositionSurfaceBrush 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 CompositionSurfaceBrush 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 CompositionSurfaceBrush : CompositionBrush
Public NotInheritable Class CompositionSurfaceBrush
Inherits CompositionBrush
- 继承
- 属性
Windows 要求
设备系列 |
Windows 10 (在 10.0.10586.0 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v2.0 中引入)
|
示例
在 SpriteVisual 上绘制图像资产
private SpriteVisual CreateImageVisual(ICompositionSurface imageSurface)
{
SpriteVisual imageVisual = _compositor.CreateSpriteVisual();
imageVisual.Size = new Vector2(300, 200);
CompositionSurfaceBrush imageBrush = _compositor.CreateSurfaceBrush();
imageBrush.Surface = imageSurface;
// specify CompositionStretch on SurfaceBrush and horizontal/vertical alignment
imageBrush.Stretch = CompositionStretch.UniformToFill;
imageBrush.HorizontalAlignmentRatio = 0.5f;
imageBrush.VerticalAlignmentRatio = 0.5f;
imageVisual.Brush = imageBrush;
return imageVisual;
}
将自定义缩放转换动画应用于 CompositionSurfaceBrush
private void AnimateBrushScale(SpriteVisual imageVisual)
{
CompositionSurfaceBrush imageBrush = (CompositionSurfaceBrush)imageVisual.Brush;
// set brush CenterPoint at the center of the content painted onto imageVisual
imageBrush.CenterPoint = imageVisual.Size / 2;
// set up scale keyframe animation
CompositionScopedBatch batch = _compositor.CreateScopedBatch(CompositionBatchTypes.Animation);
Vector2KeyFrameAnimation scaleAnimation = _compositor.CreateVector2KeyFrameAnimation();
scaleAnimation.InsertKeyFrame(1.0f, new Vector2(1.5f));
scaleAnimation.Duration = TimeSpan.FromMilliseconds(500);
// start animation on CompositionSurfaceBrush.Scale
imageBrush.StartAnimation("Scale", scaleAnimation);
// end animation batch and fire completion event
batch.End();
batch.Completed += ScaleAnimationBatch_Completed;
}
注解
Stretch 属性与 HorizontalAlignmentRatio 和 VerticalAlignmentRatio 属性结合使用,用于指定在绘制到 SpriteVisual 上时 CompositionSurfaceBrush 内容的比例和位置。
CompositionSurfaceBrush 还具有以下属性,用于启用自定义转换:
- AnchorPoint
- CenterPoint
- Offset
- RotationAngle
- RotationAngleInDegrees
- 缩放
- TransformMatrix
CompositionSurfaceBrush 上的转换操作顺序如下:
CompositionSurfaceBrush 的内容将拉伸并对齐到 SpriteVisual (请参阅 Stretch、 HorizontalAlignmentRatio 和 VerticalAlignmentRatio 属性) 。
将应用 CompositionSurfaceBrush 上设置的任何其他转换属性。
因此,应用于 CompositionSurfaceBrush 的自定义转换在画笔绘制到的 SpriteVisual 的坐标空间中进行评估。 例如,将 Vector2 的偏移量 (设置为 100, 0) 将画笔的拉伸和对齐内容相对于绘制到它的 SpriteVisual 的左边缘向右偏移 100 个单位。
版本历史记录
Windows 版本 | SDK 版本 | 已添加值 |
---|---|---|
1607 | 14393 | AnchorPoint |
1607 | 14393 | CenterPoint |
1607 | 14393 | Offset |
1607 | 14393 | RotationAngle |
1607 | 14393 | RotationAngleInDegrees |
1607 | 14393 | 缩放 |
1607 | 14393 | TransformMatrix |
1903 | 18362 | SnapToPixels |
属性
AnchorPoint |
要定位在画笔偏移量的画笔上的点。 值根据 SpriteVisual 的大小进行规范化。 |
BitmapInterpolationMode |
指定用于内插 ICompositionSurface 中的像素的算法,这些像素不会形成到 SpriteVisual (上的像素的一对一映射,就像在拉伸、缩放、旋转和其他) 转换下可能发生的那样。 |
CenterPoint |
旋转和缩放画笔的点。 |
Comment |
要与 CompositionObject 关联的字符串。 (继承自 CompositionObject) |
Compositor |
用于创建此 CompositionObject 的 Compositor。 (继承自 CompositionObject) |
Dispatcher |
CompositionObject 的调度程序。 (继承自 CompositionObject) |
DispatcherQueue |
获取 CompostionObject 的 DispatcherQueue 。 (继承自 CompositionObject) |
HorizontalAlignmentRatio |
控制内容垂直轴相对于 SpriteVisual 的垂直轴的位置。 该值从 0.0f 固定到 1.0f,其中 0.0f 表示左垂直边缘,1.0f 表示 SpriteVisual 的右垂直边缘。 |
ImplicitAnimations |
附加到此对象的隐式动画集合。 (继承自 CompositionObject) |
Offset |
画笔相对于其 SpriteVisual 的偏移量。 |
Properties |
与 CompositionObject 关联的属性的集合。 (继承自 CompositionObject) |
RotationAngle |
画笔的旋转角度(以弧度为单位)。 |
RotationAngleInDegrees |
画笔的旋转角度(以度为单位)。 |
Scale |
要应用于画笔的刻度。 |
SnapToPixels |
获取或设置一个值,该值指示表面画笔是否与像素对齐。 |
Stretch |
控制应用于 ICompositionSurface 内容(相对于正在绘制的 SpriteVisual 的大小)的缩放。 |
Surface | |
TransformMatrix |
要应用于画笔的转换矩阵。 |
VerticalAlignmentRatio |
控制内容水平轴相对于 SpriteVisual 的水平轴的位置。 该值从 0.0f 固定到 1.0f,其中 0.0f 表示顶部水平边缘,1.0f 表示 SpriteVisual 的底部水平边缘。 默认值为 0.5f。 |
方法
Close() |
关闭 CompositionObject 并释放系统资源。 (继承自 CompositionObject) |
ConnectAnimation(String, CompositionAnimation) |
连接和动画。 (继承自 CompositionObject) |
DisconnectAnimation(String) |
断开动画的连接。 (继承自 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) |