Microsoft.UI.Xaml.Core.Direct 네임스페이스

미들웨어 작성자가 낮은 수준의 고성능 XAML API에 액세스하고 더 나은 CPU 및 작업 집합 성능을 달성할 수 있는 방법을 제공합니다.

참고

이 네임스페이스에는 Microsoft Windows UI 라이브러리의 일부인 Microsoft.UI.Xaml.Core.Direct NuGet 패키지가 필요합니다.

이 설명서는 UWP용 WinUI 2에 적용됩니다(Windows 앱 SDKWinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

클래스

XamlDirect

모든 XamlDirect API의 기본 클래스를 나타냅니다. 모든 XamlDirect API는 이 클래스의 인스턴스 메서드입니다.

XamlDirect 는 더 나은 CPU 및 작업 집합 성능을 위해 보다 기본적인 수준에서 Xaml에 액세스하기 위한 API입니다.

이 설명서는 UWP용 WinUI 2에 적용됩니다(Windows 앱 SDKWinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

인터페이스

IXamlDirect

모든 XamlDirect API의 기본 클래스를 나타냅니다. 모든 XamlDirect API는 이 클래스의 인스턴스 메서드입니다.

XamlDirect 는 더 나은 CPU 및 작업 집합 성능을 위해 보다 기본적인 수준에서 Xaml에 액세스하기 위한 API입니다.

이 설명서는 UWP용 WinUI 2에 적용됩니다(Windows 앱 SDKWinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

열거형

XamlEventIndex

XamlDirect에서 지원되는 모든 이벤트를 나열하는 열거형입니다.

이 설명서는 UWP용 WinUI 2에 적용됩니다(Windows 앱 SDKWinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

XamlPropertyIndex

XamlDirect에서 지원되는 모든 속성을 나열하는 열거형입니다.

이 설명서는 UWP용 WinUI 2에 적용됩니다(Windows 앱 SDKWinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

XamlTypeIndex

XamlDirect에서 지원되는 모든 형식을 나열하는 열거형입니다.

이 설명서는 UWP용 WinUI 2에 적용됩니다(Windows 앱 SDKWinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

예제

WinUI 3 갤러리WinUI 2 갤러리 앱에는 대부분의 WinUI 3 및 WinUI 2 컨트롤, 특징, 기능의 대화형 예제가 포함되어 있습니다.

이미 설치된 경우 WinUI 3 갤러리 또는 WinUI 2 갤러리 링크를 클릭하여 갤러리를 엽니다.

설치되지 않은 경우 Microsoft Store에서 WinUI 3 갤러리WinUI 2 갤러리를 다운로드할 수 있습니다.

GitHub에서 두 갤러리의 소스 코드를 가져올 수도 있습니다(WinUI 3는 main 분기, WinUI 2는 winui2 분기 사용).

다음 예제에서는 XamlDirect API를 사용하여 컬렉션에 값을 추가하는 방법을 보여 줍니다.

XamlDirect xd = XamlDirect.GetDefault();

IXamlDirect relativePanel = xd.CreateInstance(XamlTypeIndex.RelativePanel);

IXamlDirect childrenCollection = xd.GetXamlDirectObjectProperty(relativePanel, XamlPropertyIndex.Panel_Children);

IXamlDirect button = xd.CreateInstance(XamlTypeIndex.Button);
xd.AddToCollection(childrenCollection, button);
XamlDirect^ xd = XamlDirect::GetDefault();

IXamlDirect^ relativePanel = xd->CreateInstance(XamlTypeIndex::RelativePanel);

IXamlDirect^ childrenCollection = xd->GetXamlDirectObjectProperty(relativePanel, XamlPropertyIndex::Panel_Children);

IXamlDirect^ button = xd->CreateInstance(XamlTypeIndex::Button);
xd->AddToCollection(childrenCollection, button);

설명

XamlDirect 는 주로 명령적 API를 사용하여 태그 대신 UI를 만드는 **미들웨어용으로 빌드된 용도*입니다. XamlDirect API를 사용하면 코드에서 명령적으로 UI를 만들 때도 XAML 파서로 성능 패리티를 달성할 수 있습니다.

XamlDirect API는 기존 API와 함께 사용할 수 있으며 플레이 성능 향상에 대한 비용을 활용할 수 있습니다.

XamlDirect에서 모든 Xaml API를 사용할 수 있는 것은 아닙니다. XamlTypeIndex 열거형은 지원되는 모든 형식을 나열하고, XamlPropertyIndex 열거형은 지원되는 모든 속성을 나열하고, XamlEventIndex 열거형은 지원되는 모든 이벤트를 나열합니다.

지원되는 함수

XamlDirect API를 사용하여 다음 함수를 수행할 수 있습니다.

CreateInstance에서 반환되는 모든 개체는 IXamlDirect 형식입니다. Set*Property API와 같은 다른 모든 API는 IXamlDirect 를 첫 번째 매개 변수로 사용합니다.

IXamlDirect를 전체 APINDEX로 변환하려면(예: Button) GetObject(System.Object) 메서드를 사용합니다. 마찬가지로 GetXamlDirectObject 를 사용하여 전체 개체/DependencyObject에서 해당 XamlDirect 동등한 인스턴스로 변환할 수 있습니다.

추가 정보