CompositionMaskBrush 클래스

정의

불투명 마스크가 적용된 CompositionBrush를 사용하여 SpriteVisual을 그립니다. 불투명 마스크의 소스는 CompositionColorBrush, CompositionLinearGradientBrush, CompositionSurfaceBrush, CompositionEffectBrush 또는 CompositionNineGridBrush 형식의 CompositionBrush일 수 있습니다. 불투명 마스크는 CompositionSurfaceBrush로 지정되어야 합니다.

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

public ref class CompositionMaskBrush sealed : CompositionBrush
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CompositionMaskBrush final : CompositionBrush
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CompositionMaskBrush : CompositionBrush
Public NotInheritable Class CompositionMaskBrush
Inherits CompositionBrush
상속
Object IInspectable CompositionObject CompositionBrush CompositionMaskBrush
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 Anniversary Edition (10.0.14393.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v3.0에서 도입되었습니다.)

예제

이미지에 별 모양의 마스크를 적용합니다.

private SpriteVisual CreateCircleImage(ICompositionSurface myImageSurface, ICompositionSurface myStarMaskSurface) 
{ 
  // Create SurfaceBrush with image surface and specify stretch and alignment 
  CompositionSurfaceBrush imageBrush = _compositor.CreateSurfaceBrush(myImageSurface); 
  imageBrush.HorizontalAlignmentRatio = 0.5f; 
  imageBrush.VerticalAlignmentRatio = 0.5f; 
  imageBrush.Stretch = CompositionStretch.UniformToFill; 

  // Create surface brush with opacity mask surface and specify stretch and alignment 
  CompositionSurfaceBrush starMaskBrush = _compositor.CreateSurfaceBrush(myStarMaskSurface); 
  starMaskBrush.Stretch = CompositionStretch.Uniform; 

  // SpriteVisual to be painted with masked content 
  SpriteVisual imageVisual = _compositor.CreateSpriteVisual(); 
  imageVisual.Size = new Vector2(200, 200); 

  // Create MaskBrush 
  CompositionMaskBrush maskBrush = _compositor.CreateMaskBrush(); 
  maskBrush.Source = imageBrush; // Set source to content that is to be masked 
  maskBrush.Mask = starMaskBrush; // Set mask to content that is the opacity mask 

  imageVisual.Brush = maskBrush; // Paint SpriteVisual with MaskBrush 

  return imageVisual;           
} 

불투명 마스크를 단색 채우기에 적용하여 도형을 만듭니다. 불투명 마스크 CompositionSurfaceBrush 의 변환 속성에 애니메이션 효과를 주면 색 꽃 애니메이션을 만들 수 있습니다.

private void CreateCircleMaskSprite(ICompositionSurface myCircleMaskSurface, ICompositionSurface myImageSurface)
{
  // SpriteVisual to be painted by MaskBrush
  _circleVisual = _compositor.CreateSpriteVisual();
  _circleVisual.Size = MyContainerGrid.RenderSize.ToVector2();

  // SurfaceBrush w/ image as MaskBrush.Source
  CompositionSurfaceBrush imageBrush = _compositor.CreateSurfaceBrush(myImageSurface);
  imageBrush.Stretch = CompositionStretch.UniformToFill;

  // SurfaceBrush w/ opacity mask surface as MaskBrush.Mask
  CompositionSurfaceBrush circleBrush = _compositor.CreateSurfaceBrush(myCircleMaskSurface);

  // Specify stretch and transform properties to scale and position brush for initial state
  circleBrush.Stretch = CompositionStretch.Uniform;
  circleBrush.CenterPoint = _circleVisual.Size / 2;
  circleBrush.Scale = new Vector2(0.5f);

  // Create MaskBrush
  CompositionMaskBrush maskBrush = _compositor.CreateMaskBrush();
  maskBrush.Source = imageBrush;
  maskBrush.Mask = circleBrush;
  _circleVisual.Brush = maskBrush;

  // Set SpriteVisual as child of XAML Grid
  ElementCompositionPreview.SetElementChildVisual(MyContainerGrid, _circleVisual);
}

private void BloomAnimation()
{
  // Create KeyFrame Animation to target Scale transform on SurfaceBrush 
  Vector2KeyFrameAnimation scaleAnimation = _compositor.CreateVector2KeyFrameAnimation();
  scaleAnimation.InsertKeyFrame(1.0f, new Vector2(2));
  scaleAnimation.Duration = TimeSpan.FromMilliseconds(500);

  var maskBrush = (CompositionMaskBrush)_circleVisual.Brush;
  var surfaceBrush = (CompositionSurfaceBrush) maskBrush.Mask;

  // Animate the Scale on the circle opacity mask
  surfaceBrush.StartAnimation("Scale", scaleAnimation);      
}

둥근 사각형 마스크를 적용하여 크기 조정 시 모서리 반경이 증가하지 않는 단색 둥근 사각형을 만듭니다(CompositionMaskBrush 에 대한 입력으로 사용CompositionNineGridBrush).

private SpriteVisual CreateMaskedRoundedRectVisual(ICompositionSurface myRoundedRectMaskSurface)
{
  // ColorBrush to be set as MaskBrush.Source
  CompositionColorBrush colorBrush = _compositor.CreateColorBrush(Colors.Blue);

  // SurfaceBrush w/ opacity mask surface
  CompositionSurfaceBrush roundedRectBrush = _compositor.CreateSurfaceBrush(myRoundedRectMaskSurface);
  roundedRectBrush.Stretch = CompositionStretch.Fill; // stretch for center of nine-grid

  // NineGridBrush w/ insets on opacity mask surface
  CompositionNineGridBrush ninegridBrush = _compositor.CreateNineGridBrush();
  ninegridBrush.Source = roundedRectBrush;
  ninegridBrush.SetInsets(_cornerRadius); // the radius, in pixels, of the corner as specified on my opacity mask surface 

  // Create MaskBrush
  CompositionMaskBrush maskBrush = _compositor.CreateMaskBrush();
  maskBrush.Source = colorBrush;
  maskBrush.Mask = ninegridBrush;

  // Paint SpriteVisual with MaskBrush
  SpriteVisual sprite = _compositor.CreateSpriteVisual();
  sprite.Size = new Vector2(300, 200);
  sprite.Brush = maskBrush;
  return sprite;

}

설명

CompositionMaskBrush를 소스 매개 변수 CompositionEffectBrush로 설정할 수 없습니다. 마스킹된 콘텐츠에 IGraphicsEffect를 적용하려면 대신 복합 효과와 함께 사용합니다CompositionEffectBrush.

속성

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)
ImplicitAnimations

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

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

(다음에서 상속됨 CompositionObject)
Mask

소스 브러시의 내용을 마스킹할 불투명 마스크가 들어 있는 브러시입니다. CompositionSurfaceBrush 또는 CompositionNineGridBrush 형식일 수 있습니다.

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

Properties

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

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

(다음에서 상속됨 CompositionObject)
Source

불투명 마스크로 콘텐츠를 마스킹할 브러시입니다. CompositionSurfaceBrush, CompositionColorBrush 또는 CompositionNineGridBrush 형식일 수 있습니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Composition.CompositionMaskBrush.Source(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)

적용 대상

추가 정보