XamlLight 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
- 상속
- 특성
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) | |
AddTargetElement(String, UIElement) | |
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) | |
RemoveTargetElement(String, UIElement) | |
SetValue(DependencyProperty, Object) |
DependencyObject에서 종속성 속성의 로컬 값을 설정합니다. (다음에서 상속됨 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다. (다음에서 상속됨 DependencyObject) |