CompositionSurfaceBrush 클래스

정의

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
상속
Object IInspectable CompositionObject CompositionBrush CompositionSurfaceBrush
특성

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의 변환 작업 순서는 다음과 같습니다.

  1. CompositionSurfaceBrush의 내용이 늘어나고 정렬됩니다 SpriteVisual (참조 Stretch, HorizontalAlignmentRatioVerticalAlignmentRatio 속성).

  2. 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의 크기와 관련하여 정규화됩니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.AnchorPoint(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

BitmapInterpolationMode

스트레치, 배율, 회전 및 기타 변환에서 발생할 수 있는 것처럼 ICompositionSurface에서 픽셀 SpriteVisual 을 보간하는 데 사용되는 알고리즘을 지정합니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.BitmapInterpolationMode(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

CenterPoint

브러시가 회전 및 배율 조정되는 지점입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.CenterPoint(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

Comment

CompositionObject와 연결할 문자열입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.Comment(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
Compositor

CompositorCompositionObject값을 만드는 데 사용됩니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.Compositor(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
Dispatcher

에 대한 디스패처입니다 CompositionObject.

(다음에서 상속됨 CompositionObject)
DispatcherQueue

DispatcherQueue CompostionObject에 대한 값을 가져옵니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.DispatcherQueue(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
HorizontalAlignmentRatio

콘텐츠의 세로 축에 대한 세로 축의 SpriteVisual위치를 제어합니다. 값은 왼쪽 세로 가장자리를 나타내는 0.0f와 오른쪽 세로 가장자리를 SpriteVisual나타내는 1.0f를 사용하여 0.0f에서 1.0f로 고정됩니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.HorizontalAlignmentRatio(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

ImplicitAnimations

이 개체에 연결된 암시적 애니메이션의 컬렉션입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.ImplicitAnimations(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
Offset

브러시를 기준으로 하는 브러시의 오프셋입니다 SpriteVisual.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.Offset(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

Properties

에 연결된 CompositionObject속성의 컬렉션입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.Properties(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
RotationAngle

브러시의 회전 각도(라디안)입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.RotationAngle(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

RotationAngleInDegrees

브러시의 회전 각도(도)입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.RotationAngleInDegrees(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

Scale

브러시에 적용할 배율입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.Scale(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

SnapToPixels

표면 브러시가 픽셀과 정렬되는지 여부를 나타내는 값을 가져오거나 설정합니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.SnapToPixels(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

Stretch

그리는 크기와 관련하여 내용 ICompositionSurface 에 적용되는 크기 조정을 SpriteVisual 제어합니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.Stretch(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

Surface

ICompositionSurface와 연결된 CompositionSurfaceBrush입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.Surface(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

TransformMatrix

브러시에 적용할 변환 행렬입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.TransformMatrix(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

VerticalAlignmentRatio

콘텐츠의 가로 축에 대한 가로 축의 SpriteVisual위치를 제어합니다. 값은 0.0f에서 1.0f로 고정되고 0.0f는 위쪽 가로 가장자리를 나타내고 1.0f는 아래쪽 가로 가장자리를 SpriteVisual나타냅니다. 기본값은 0.5f입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionSurfaceBrush.VerticalAlignmentRatio(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

메서드

Close()

CompositionObject를 닫고 시스템 리소스를 해제합니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.Close(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
ConnectAnimation(String, CompositionAnimation)

연결 및 애니메이션.

(다음에서 상속됨 CompositionObject)
DisconnectAnimation(String)

애니메이션의 연결을 끊습니다.

(다음에서 상속됨 CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

애니메이션 효과를 적용할 수 있는 속성을 정의합니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.PopulatePropertyInfo(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
StartAnimation(String, CompositionAnimation)

개체의 지정된 속성에 애니메이션을 연결하고 애니메이션을 시작합니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.StartAnimation(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

개체의 지정된 속성에 애니메이션을 연결하고 애니메이션을 시작합니다.

(다음에서 상속됨 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

애니메이션 그룹을 시작합니다.

StartAnimationGroup 메서드를 사용하여 CompositionObject 시작할 CompositionAnimationGroup수 있습니다. 그룹의 모든 애니메이션은 개체에서 동시에 시작됩니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.StartAnimationGroup(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
StopAnimation(String)

지정된 속성에서 애니메이션의 연결을 끊고 애니메이션을 중지합니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.StopAnimation(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

애니메이션 그룹을 중지합니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.StopAnimationGroup(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)
TryGetAnimationController(String)

지정된 속성에서 실행되는 애니메이션에 대한 AnimationController를 반환합니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionObject.TryGetAnimationController(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 CompositionObject)

적용 대상

추가 정보