LayerVisual 클래스

정의

자식이 단일 레이어로 평면화되는 ContainerVisual입니다.

public ref class LayerVisual sealed : ContainerVisual
/// [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 LayerVisual final : ContainerVisual
[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 LayerVisual : ContainerVisual
Public NotInheritable Class LayerVisual
Inherits ContainerVisual
상속
Object IInspectable CompositionObject Visual ContainerVisual LayerVisual
특성

Windows 요구 사항

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

예제

LayerVisual에 효과 적용

private async void InitComposition()
{
  Compositor compositor = ElementCompositionPreview.GetElementVisual(MyGrid).Compositor;

  //Create LayerVisual
  LayerVisual layerVisual = compositor.CreateLayerVisual();
  layerVisual.Size = new Vector2(900,900);

  //Create SpriteVisuals to use as LayerVisual child
  SpriteVisual sv1 = compositor.CreateSpriteVisual();
  sv1.Brush = compositor.CreateColorBrush(Windows.UI.Colors.Blue);
  sv1.Size = new Vector2(300, 300);
  sv1.Offset = new Vector3(200, 200, 0);

  SpriteVisual sv2 = compositor.CreateSpriteVisual();
  sv2.Brush = compositor.CreateColorBrush(Colors.Red);
  sv2.Size = new Vector2(300, 300);
  sv2.Offset = new Vector3(400, 400, 0);

  //Add children to the LayerVisual
  layerVisual.Children.InsertAtTop(sv1);
  layerVisual.Children.InsertAtTop(sv2);

  //Create Effect
  var graphicsEffect = new GaussianBlurEffect
  {
     Name = "Blur",
     Source = new CompositionEffectSourceParameter("Backdrop"),
     BlurAmount = 10.0f,
     BorderMode = EffectBorderMode.Hard,
     Optimization = EffectOptimization.Balanced
  };

  var blurEffectFactory = compositor.CreateEffectFactory(graphicsEffect,
      new[] { "Blur.BlurAmount" });
  var blurBrush = blurEffectFactory.CreateBrush();

  //Apply Effect
  layerVisual.Effect = blurBrush;

  ElementCompositionPreview.SetElementChildVisual(MyGrid, layerVisual);
}        

DropShadow 추가

private async void InitComposition()
{
  Compositor compositor = ElementCompositionPreview.GetElementVisual(MyGrid).Compositor;

  //Create LayerVisual
  LayerVisual layerVisual = compositor.CreateLayerVisual();
  layerVisual.Size = new Vector2(900, 900);

  //Create SpriteVisuals to use as LayerVisual child
  SpriteVisual sv1 = compositor.CreateSpriteVisual();
  sv1.Brush = compositor.CreateColorBrush(Windows.UI.Colors.Blue);
  sv1.Size = new Vector2(300, 300);
  sv1.Offset = new Vector3(200, 200, 0);

  SpriteVisual sv2 = compositor.CreateSpriteVisual();
  sv2.Brush = compositor.CreateColorBrush(Colors.Red);
  sv2.Size = new Vector2(300, 300);
  sv2.Offset = new Vector3(400, 400, 0);

  //Add children to the LayerVisual
  layerVisual.Children.InsertAtTop(sv1);
  layerVisual.Children.InsertAtTop(sv2);

  //Create DropShadow
  DropShadow shadow = compositor.CreateDropShadow();
  shadow.Color = Colors.DarkSlateGray;
  shadow.Offset = new Vector3(40, 40, 0);
  shadow.BlurRadius = 9;
  shadow.SourcePolicy = CompositionDropShadowSourcePolicy.InheritFromVisualContent;

  //Associate Shadow with LayerVisual
  layerVisual.Shadow = shadow;

  ElementCompositionPreview.SetElementChildVisual(MyGrid, layerVisual);
}         

설명

LayerVisual은 시각적 개체 트리를 선택하는 데 사용할 수 있는 특수 입력 형식입니다. 트리 입력은 LayerVisual을 사용하여 암시적으로 지정됩니다. EffectBrush가 LayerVisual의 효과 속성으로 설정된 경우 EffectBrush는 LayerVisual에 루팅된 하위 트리를 입력으로 자동으로 사용합니다. LayerVisual에 대한 암시적 입력은 다음과 같은 효과에 대해 작동합니다.

  • 효과에 입력이 하나 있는 경우 EffectBrush는 LayerVisual에 루팅된 하위 트리를 입력으로 사용합니다.
  • 효과에 입력이 2개 있는 경우 EffectBrush의 첫 번째 바인딩되지 않은 입력은 LayerVisual에 루팅된 하위 트리를 입력으로 사용합니다.
  • 시스템에서는 SurfaceBrush에 바인딩된 모든 입력이 있는 0개의 입력 또는 효과가 있는 효과를 LayerVisual의 효과 속성에서 EffectBrush로 설정할 수 없습니다. 그러면 예외가 throw됩니다.

버전 기록

Windows 버전 SDK 버전 추가된 값
1709 16299 그림자

속성

AnchorPoint

시각적 개체의 오프셋에 배치할 시각적 개체의 점입니다. 값은 시각적 개체의 크기와 관련하여 정규화됩니다. 애니메이션 효과를 적용할 수 있습니다.

(다음에서 상속됨 Visual)
BackfaceVisibility

3D 변환 중에 시각적 개체의 뒷면을 볼 수 있는지 여부를 지정합니다.

(다음에서 상속됨 Visual)
BorderMode

시각적 개체와 연결된 비트맵 및 클립의 가장자리 또는 이 시각적 개체에 루팅된 하위 트리의 모든 시각적 개체를 구성하는 방법을 지정합니다. 부모 시각적 개체에서 BorderMode를 설정하면 하위 트리의 모든 자식 시각적 개체에 영향을 주고 각 자식 시각적 개체에서 선택적으로 해제할 수 있습니다.

(다음에서 상속됨 Visual)
CenterPoint

회전 또는 크기 조정이 발생하는 지점입니다. 애니메이션 가능

(다음에서 상속됨 Visual)
Children

의 자식 ContainerVisual입니다.

(다음에서 상속됨 ContainerVisual)
Clip

시각적 개체의 클리핑 영역을 지정합니다. 시각적 개체가 렌더링되면 클리핑 영역 내에 있는 시각적 개체 부분만 표시되고, 클리핑 영역 외부로 확장되는 모든 콘텐츠(즉, 표시되지 않음)가 잘립니다.

(다음에서 상속됨 Visual)
Comment

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

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

(다음에서 상속됨 CompositionObject)
CompositeMode

시각적 개체의 비트맵을 화면과 혼합하는 방법을 지정합니다.

(다음에서 상속됨 Visual)
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)
Effect

자식의 평면화된 표현에 적용할 효과입니다 LayerVisual.

ImplicitAnimations

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

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

(다음에서 상속됨 CompositionObject)
IsHitTestVisible

이 시각적 개체에 루팅된 시각적 개체 하위 트리가 적중 테스트에 참여하는지 여부를 나타내는 값을 가져오거나 설정합니다.

(다음에서 상속됨 Visual)
IsPixelSnappingEnabled

컴퍼지션 엔진이 렌더링된 시각적 개체를 픽셀 경계에 맞추는지 여부를 나타내는 값을 가져오거나 설정합니다.

(다음에서 상속됨 Visual)
IsVisible

시각적 개체와 자식 시각적 개체의 전체 하위 트리가 표시되는지 여부를 나타냅니다.

(다음에서 상속됨 Visual)
Offset

부모 또는 루트 시각적 개체를 기준으로 하는 시각적 개체의 오프셋은 시각적 개체를 호스트하는 창의 왼쪽 위 모서리를 기준으로 하는 오프셋입니다. 애니메이션 효과를 적용할 수 있습니다.

(다음에서 상속됨 Visual)
Opacity

시각적 개체의 불투명도입니다. 애니메이션 효과를 적용할 수 있습니다.

불투명도 속성은 시각적 개체의 투명도(있는 경우)를 결정하며 0에서 1까지의 값입니다. 0은 완전히 투명하고 1은 불투명합니다. Opacity 속성이 0인 시각적 개체는 여전히 트리에 있습니다. 시각적 개체의 다른 속성과 마찬가지로 Windows, UI를 사용하여 불투명도에 애니메이션 효과를 적용할 수 있습니다. 컴퍼지션 애니메이션 시스템.

(다음에서 상속됨 Visual)
Orientation

시각적 개체에 적용할 3D 공간의 방향 및 회전을 설명하는 쿼터니언입니다. 애니메이션 효과를 적용할 수 있습니다.

(다음에서 상속됨 Visual)
Parent

시각적 개체의 부모입니다.

(다음에서 상속됨 Visual)
ParentForTransform

이 시각적 개체가 구성되는 좌표계를 지정하는 시각적 개체입니다.

(다음에서 상속됨 Visual)
Properties

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

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

(다음에서 상속됨 CompositionObject)
RelativeOffsetAdjustment

부모 시각적 개체의 크기와 관련하여 시각적 개체의 오프셋을 지정합니다.

(다음에서 상속됨 Visual)
RelativeSizeAdjustment

부모 시각적 개체의 크기와 관련된 시각적 개체의 크기를 가져오거나 설정합니다.

(다음에서 상속됨 Visual)
RotationAngle

시각적 개체의 라디안 회전 각도입니다. 애니메이션 효과를 적용할 수 있습니다.

(다음에서 상속됨 Visual)
RotationAngleInDegrees

시각적 개체의 회전 각도(도)입니다. 애니메이션을 적용할 수 있습니다.

(다음에서 상속됨 Visual)
RotationAxis

시각적 개체를 회전할 축입니다. 애니메이션을 적용할 수 있습니다.

(다음에서 상속됨 Visual)
Scale

시각적 개체에 적용할 크기 조정입니다.

(다음에서 상속됨 Visual)
Shadow

자식의 평면화된 표현에 적용할 그림자입니다 LayerVisual.

Size

시각적 개체의 너비 및 높이입니다. 애니메이션을 적용할 수 있습니다.

(다음에서 상속됨 Visual)
TransformMatrix

시각적 개체에 적용할 변환 행렬입니다. 애니메이션을 적용할 수 있습니다.

(다음에서 상속됨 Visual)

메서드

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)

적용 대상

추가 정보