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 |
SpriteVisual의 픽셀에 대한 일대일 매핑을 형성하지 않을 때 ICompositionSurface에서 픽셀을 보간하는 데 사용되는 알고리즘을 지정합니다(스트레치, 배율, 회전 및 기타 변환에서 발생할 수 있음). |
CenterPoint |
브러시가 회전 및 크기 조정되는 지점입니다. |
Comment |
CompositionObject와 연결할 문자열입니다. (다음에서 상속됨 CompositionObject) |
Compositor |
이 CompositionObject를 만드는 데 사용되는 Compositor입니다. (다음에서 상속됨 CompositionObject) |
Dispatcher |
CompositionObject의 디스패처입니다. (다음에서 상속됨 CompositionObject) |
DispatcherQueue |
CompostionObject에 대한 DispatcherQueue 를 가져옵니다. (다음에서 상속됨 CompositionObject) |
HorizontalAlignmentRatio |
SpriteVisual의 세로 축과 관련하여 콘텐츠의 세로 축 위치를 제어합니다. 값은 왼쪽 세로 가장자리를 나타내는 0.0f와 SpriteVisual의 오른쪽 세로 가장자리를 나타내는 1.0f를 사용하여 0.0f에서 1.0f로 고정됩니다. |
ImplicitAnimations |
이 개체에 연결된 암시적 애니메이션의 컬렉션입니다. (다음에서 상속됨 CompositionObject) |
Offset |
SpriteVisual을 기준으로 하는 브러시의 오프셋입니다. |
Properties |
CompositionObject와 연결된 속성의 컬렉션입니다. (다음에서 상속됨 CompositionObject) |
RotationAngle |
브러시의 회전 각도(라디안)입니다. |
RotationAngleInDegrees |
브러시의 회전 각도(도)입니다. |
Scale |
브러시에 적용할 배율입니다. |
SnapToPixels |
표면 브러시가 픽셀과 일치하는지 여부를 나타내는 값을 가져오거나 설정합니다. |
Stretch |
그리는 SpriteVisual의 크기와 관련하여 ICompositionSurface 콘텐츠에 적용되는 크기 조정을 제어합니다. |
Surface | |
TransformMatrix |
브러시에 적용할 변환 행렬입니다. |
VerticalAlignmentRatio |
SpriteVisual의 가로 축과 관련하여 콘텐츠의 가로 축 위치를 제어합니다. 값은 위쪽 가로 가장자리를 나타내는 0.0f와 SpriteVisual의 아래쪽 가로 가장자리를 나타내는 1.0f를 사용하여 0.0f에서 1.0f로 고정됩니다. 기본값은 0.5f입니다. |