CompositionSurfaceBrush 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
SpriteVisual ICompositionSurface에서 픽셀로 칠합니다.
UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).
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 |
속성
메서드
적용 대상
추가 정보
피드백
다음에 대한 사용자 의견 제출 및 보기