다음을 통해 공유


XamlLight 클래스

정의

CompositionLight를 사용하여 XAML 요소 및 브러시에 조명 효과를 적용하는 XAML 조명을 만드는 데 사용되는 기본 클래스를 제공합니다.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class XamlLight : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class XamlLight : DependencyObject
Public Class XamlLight
Inherits DependencyObject
상속
Object IInspectable DependencyObject XamlLight
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 Creators Update (10.0.15063.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v4.0에서 도입되었습니다.)

예제

조명의 코드 예제를 참조하세요.

설명

XamlLight를 사용하여 사용자 지정 조명을 만들 수 있습니다.

예를 들어 컴퍼지션 SpotLight 를 대상 요소에 적용하여 조명하는 조명을 만드는 데 사용할 수 있습니다.

XamlLight는 UIElements 표적화 또는 XAML 브러시에 대한 메서드를 제공하며 조명을 UIElements 트리에 적용하고 현재 사용 여부에 기반하여 CompositionLight 리소스의 수명을 관리합니다.

사용자 지정 XamlLights는 XamlLight에 의해 점등될 때 요소의 반사 속성을 제어하는 SceneLightingEffect를 사용하는 XamlCompositionBrushBase에서 파생된 사용자 지정 브러시와 함께 사용할 수 있습니다.

대상 지정 개체

XamlLight를 사용하여 Brush를 대상으로 지정하면 해당 Brush 를 사용하는 모든 UIElements 부분이 조명에 의해 점등됩니다.

XamlLight를 사용하여 UIElement 를 대상으로 지정하면 전체 UIElement 및 해당 자식 UIElements가 모두 조명에 의해 켜집니다.

XamlLight instance 메서드를 호출하여 대상을 추가하고 제거할 수 있습니다. XamlLights는 태그에서 대상을 추가하고 제거하는 사용자 지정 연결된 속성을 정의할 수도 있습니다.

리소스 관리

XamlLight를 만들 때 일반적으로 조명이 사용될 때까지 CompositionLight 및 관련 리소스 만들기를 지연하는 것이 좋습니다. OnConnected 메서드는 XamlLight를 사용하여 화면에서 요소 또는 브러시를 대상으로 지정할 때 호출되므로 OnConnected를 재정의하여 필요한 경우에만 리소스를 안전하게 만들 수 있습니다.

더 이상 사용되지 않을 때 컴퍼지션 리소스를 삭제하는 것도 좋습니다. OnDisconnected 메서드는 XamlLight instance 화면의 아무 곳에서도 더 이상 사용되지 않을 때 호출되므로 OnDisconnected를 재정의하여 리소스를 안전하게 삭제할 수 있습니다. 연결이 끊긴 후 나중에 XamlLight를 다시 사용하면 OnConnected 가 다시 호출됩니다.

경고

Windows 10 크리에이터스 업데이트(SDK 15063)에서는 Dispose가 호출된 후 CompositionLight에 액세스할 수 없으므로 Dispose를 호출한 후 null로 설정하면 오류가 발생합니다. 이 문제를 해결하려면 CompositionLight를 임시 변수에 저장하고 CompositionLight를 null로 설정한 후 Dispose를 호출할 수 있습니다. var temp = CompostionLight; CompositionLight = null; temp.Dispose(); 이 문제는 이후 버전의 SDK에서 해결되었습니다. 다른 SDK 버전을 대상으로 지정하는 방법에 대한 자세한 내용은 버전 적응 앱을 참조하세요.

생성자

XamlLight()

XamlLight 클래스의 새 instance 초기화합니다.

속성

CompositionLight

조명 효과를 적용하는 데 사용되는 CompositionLight instance 가져오거나 설정합니다.

Dispatcher

이 개체가 연결된 CoreDispatcher 를 가져옵니다. CoreDispatcher는 코드가 비 UI 스레드에서 시작된 경우에도 UI 스레드에서 DependencyObject에 액세스할 수 있는 기능을 나타냅니다.

(다음에서 상속됨 DependencyObject)

메서드

AddTargetBrush(String, Brush)

브러시XamlLight의 대상으로 설정합니다.

AddTargetElement(String, UIElement)

UIElementXamlLight의 대상으로 설정합니다.

ClearValue(DependencyProperty)

종속성 속성의 로컬 값을 지웁니다.

(다음에서 상속됨 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

애니메이션이 활성화되지 않은 경우 적용되는 종속성 속성에 대해 설정된 모든 기본 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
GetId()

사용자 지정 XamlLight 형식의 식별자를 반환합니다.

대부분의 경우 충돌을 방지하기 위해 고유 식별자를 사용해야 합니다. 예를 들어 사용자 지정 XamlLight 형식의 FullName 을 사용할 수 있습니다.

식별자는 브러시 및 UIElements를 특정 조명 형식의 대상으로 추가 및 제거하는 데 사용됩니다.

GetValue(DependencyProperty)

DependencyObject에서 종속성 속성의 현재 유효 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
OnConnected(UIElement)

이 메서드는 XamlLight가 화면에서 처음 사용 중이거나 이전에 연결이 끊긴 후 다시 사용될 때 자동으로 호출됩니다.

이렇게 하면 필요한 경우에만 CompositionLight와 같은 리소스를 만들 수 있습니다.

XamlLight가 더 이상 UIElements 또는 Brushes를 비추는 데 사용되지 않을 때 OnDisconnected가 호출됩니다.

OnDisconnected(UIElement)

이 메서드는 XamlLight가 화면의 아무 곳에서도 더 이상 사용되지 않을 때 자동으로 호출됩니다.

이렇게 하면 현재 필요하지 않은 경우 CompositionLight와 같은 리소스를 안전하게 삭제할 수 있습니다.

연결이 끊긴 후 XamlLight를 사용하여 UIElements 또는 Brushes를 표시하면 OnConnected가 다시 호출됩니다.

ReadLocalValue(DependencyProperty)

로컬 값이 설정된 경우 종속성 속성의 로컬 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

DependencyObject instance 특정 DependencyProperty의 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다.

(다음에서 상속됨 DependencyObject)
RemoveTargetBrush(String, Brush)

브러시XamlLight의 대상이 되는 것을 중지합니다.

RemoveTargetElement(String, UIElement)

UIElementXamlLight의 대상이 되는 것을 중지합니다.

SetValue(DependencyProperty, Object)

DependencyObject에서 종속성 속성의 로컬 값을 설정합니다.

(다음에서 상속됨 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다.

(다음에서 상속됨 DependencyObject)

적용 대상

추가 정보