내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

Silverlight XAML 네임스페이스 및 XAML 네임스페이스를 접두사로 매핑

Silverlight

이 항목에서는 대부분의 Silverlight XAML 파일의 루트 요소에서 찾을 수 있는 두 XML/XAML 네임스페이스(xmlns) 매핑과 그 용도에 대해 자세하게 설명합니다. 또한 Silverlight SDK에서 클라이언트 라이브러리로 배포되는 요소와 같이 고유의 코드에서 및/또는 별도의 어셈블리 내에서 정의되는 요소를 사용하기 위해 유사한 매핑을 생성하는 방법에 대해서도 설명합니다.

이 항목에는 다음 단원이 포함되어 있습니다.

여러 XAML 파일의 루트 요소 내에는 두 개의 xmlns 선언이 있습니다. 첫 번째 선언은 전체 Silverlight 핵심 XAML 네임스페이스를 기본값으로 매핑합니다.

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

이 값은 WPF에서 기본 XAML 네임스페이스에 사용하는 것과 동일한 XAML 네임스페이스 식별자입니다.

두 번째 선언은 XAML 정의 언어 요소의 개별 XAML 네임스페이스를 일반적으로 x: 접두사에 매핑합니다.

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

이 xmlns 값은 WPF에서 사용하는 값과 동일합니다.

이러한 선언 간의 관계에서 XAML은 언어 정의이며, Silverlight는 XAML을 언어로 사용하고 형식이 XAML에서 참조되는 특정 어휘를 정의하는 하나의 구현입니다. 특히 Silverlight는 엄격한 XAML 언어 요소의 하위 집합을 사용합니다. XAML 언어는 특정 언어 요소를 지정하며 각 요소는 XAML 네임스페이스에 적용되는 XAML 프로세서 구현을 통해 액세스할 수 있어야 합니다. Silverlight는 WPF로 구현되는 XAML 언어 요소 집합의 하위 집합도 사용합니다.

이 설명서 세트에 포함된 프로젝트 템플릿, 샘플 코드, 언어 기능 설명서에서는 XAML 언어 XAML 네임스페이스에 대한 x: 매핑 규칙을 따릅니다. 이 XAML 네임스페이스는 기본 Silverlight 기반 응용 프로그램에도 필요한 여러 가지 일반 기능을 정의합니다. 예를 들어 partial 클래스를 통해 코드 숨김을 XAML 파일에 결합하려면 관련 XAML 파일의 루트 요소에서 해당 클래스를 x:Class 특성으로 명명해야 합니다. 또는 XAML 페이지에 정의된 요소 중 ResourceDictionary에 키가 지정된 리소스로 액세스하려는 요소에는 x:Key 특성을 설정해야 합니다.

기본 Silverlight 네임스페이스와 XAML 언어 XAML 네임스페이스 x: 외에 Visual Studio에 의해 생성된 Silverlight용의 초기 기본 XAML에서 다른 매핑된 XAML 네임스페이스도 볼 수 있습니다.

d: (http://schemas.microsoft.com/expression/blend/2008)

d: XAML 네임스페이스는 디자이너 지원, Microsoft Visual Studio 및 Microsoft Expression Blend의 XAML 디자인 화면의 특별한 디자이너 지원을 위한 것입니다. d: XAML 네임스페이스를 사용하면 XAML 요소에서 디자이너 특성을 사용할 수 있습니다. 이러한 디자이너 특성은 XAML이 동작하는 방식의 디자인 측면에만 영향을 줍니다. 동일한 XAML이 Silverlight 런타임에 XAML 파서에서 로드되고 응용 프로그램을 실행하는 경우 디자이너 특성은 무시됩니다. 일반적으로 디자이너 특성은 모든 XAML 요소에서 유효하지만 디자이너 특성을 직접 적용하는 것이 적절한 특정 시나리오에서만 실용적입니다. 특히, 많은 디자이너 특성은 XAML 및 데이터 바인딩을 사용하는 응용 프로그램으로 작업하는 동안 데이터 컨텍스트 및 데이터 소스와 상호 작용하는 데 더 나은 경험을 제공하기 위한 것입니다. 자세한 내용은 Silverlight Designer의 디자인 타임 특성을 참조하십시오.

mc: (http://schemas.openxmlformats.org/markup-compatibility/2006)

mc: 는 XAML을 읽기 위한 태그 호환성을 나타내고 지원합니다. 일반적으로 d: 접두사는 mc:Ignorable 특성을 사용하여 연결됩니다. 이 기술은 이전에 설명한 대로 런타임 XAML 파서가 디자인 특성을 무시할 수 있도록 합니다.

vsm:

vsm: 는 때때로 XAML 템플릿에 나타나는 접두사입니다. 레거시 호환성을 위해 vsm:에서는 때때로 VisualStateManager 클래스 및 관련 연결된 속성에 대한 XAML 참조 표시를 제거하는 데 사용되었습니다. 자세한 내용은 ControlTemplate을 사용하여 기존 컨트롤의 모양 사용자 지정을 참조하십시오.

sdk: (http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk )

sdk: 는 XAML 네임스페이스 http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk에 대한 특성 승격된 접두사입니다. XAML 네임스페이스는 추가 Silverlight 동작 및 컨트롤을 제공하기 위해 클라이언트 라이브러리의 일부로 Silverlight SDK와 함께 배포되는 다양한 라이브러리에 의해 공유됩니다. 이 XAML 네임스페이스를 사용하려면 Silverlight 4 이상을 대상으로 지정해야 합니다. 자세한 내용은 Silverlight 라이브러리의 접두사와 매핑을 참조하십시오.

XAML 네임스페이스를 어셈블리에 매핑하고 xmlns 접두사 선언 내에서 일련의 토큰을 사용하여 그 안의 CLR 네임스페이스에 매핑할 수 있습니다. 이는 XAML 네임스페이스 값을 x: 접두사에 매핑하는 방법과 비슷하지만 이 경우 XAML에서 사용하려는 형식이 포함된 해당 어셈블리 내에 어셈블리와 CLR 네임스페이스를 명시적으로 선언합니다.

구문에는 다음과 같은 명명된 토큰과 값을 사용할 수 있습니다.

clr-namespace: XAML 사용에 노출되는 공용 형식을 포함하는 어셈블리 내에서 선언된 CLR(공용 언어 런타임) 네임스페이스입니다.

assembly= 참조된 CLR 네임스페이스에서 형식을 정의하는 어셈블리입니다. 어셈블리 이름에 파일 이름 확장명 부분을 포함하지 마십시오.

clr-namespace 토큰과 해당 값을 구분하는 문자는 콜론(:)이지만, assembly 토큰과 해당 값을 구분하는 문자는 등호(=)입니다. 이 두 토큰 간을 구분하는 데 사용되는 문자는 세미콜론입니다. 매핑 값에는 공백을 포함하면 안 됩니다. 예를 들면 다음과 같습니다.

xmlns:custom="clr-namespace:SDKSample;assembly=SDKSampleLibrary"

어셈블리마다 공유 CLR 네임스페이스에서 형식을 선언하는 것이 가능합니다. 이 경우 각 어셈블리에 대해 별도의 매핑을 정의해야 하지만 동일한 clr-namespace: 값을 참조합니다.

SDK 클라이언트 라이브러리 어셈블리에 매핑

SDK 클라이언트 라이브러리 어셈블리는 http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk 식별자가 있는 공유 XAML 네임스페이스를 사용합니다. 일반적으로 이 XAML 네임스페이스는 sdk 접두사에 매핑됩니다. 자세한 내용은 Silverlight 라이브러리의 접두사와 매핑을 참조하십시오.

참고 참고:

접두사만 매핑한다고 해서 SDK 클라이언트 라이브러리의 클래스를 사용할 수 있는 것은 아닙니다. 응용 프로그램 구조 및 배포 설정의 일부로 SDK 클라이언트 라이브러리 어셈블리도 배포하거나 다른 방식으로 참조해야 합니다. 자세한 내용은 응용 프로그램 구조을 참조하십시오.

사용자 지정 어셈블리에 매핑

Silverlight 기반 응용 프로그램의 일부로 만들어 배포하는 사용자 지정 어셈블리에 포함된 형식을 참조하기 위해 접두사를 매핑할 수 있습니다. 이 동일한 절차가 응용 프로그램에서 배포할 수 있는 타사 어셈블리(예: 타사 컨트롤을 제공하는 라이브러리)에 적용될 수 있습니다.

예를 들어, Custom이라는 어셈블리에서 정의하는 CustomClasses 네임스페이스를 참조하고 해당 네임스페이스/어셈블리의 클래스를 XAML에서 개체 요소로 사용할 수 있도록 custom1 접두사를 매핑하려면 XAML 페이지의 루트 요소에 다음 매핑이 포함되어야 합니다.

xmlns:custom1="clr-namespace:CustomClasses;assembly=Custom"

참고 참고:

원래 사이트를 기반으로 어셈블리에 액세스하는 데 필요한 경로가 있는 경우 이 경로는 Assembly= 다음의 문자열에 포함되지 않아야 합니다. 어셈블리에 대한 경로는 AssemblyPart.SourceExtensionPart.Source 값에만 관련됩니다.

Visual Studio XAML 편집에는 매핑 프로세스를 단순화하는 데 도움이 되는 새로운 xmlns 값을 XAML에서 정의할 때 드롭다운 목록을 표시하는 기능이 제공됩니다. 최상의 결과를 얻으려면 먼저 프로젝트에서 관련 어셈블리를 참조한 후 이 어셈블리의 접두사를 매핑하십시오.

현재 어셈블리에 매핑

사용자 지정 클래스를 참조하는 응용 프로그램 코드와 동일한 어셈블리 내에서 clr-namespace 참조를 정의하는 경우에는 assembly(일반적으로 EntryPointAssembly)를 생략할 수 있습니다. 동일한 어셈블리를 매핑하기 위해 어셈블리 정보를 생략할 수 있는 해당 구문은 등호 다음에 문자열 토큰 없이 assembly=를 지정하는 것입니다.

Partial 클래스는 매핑할 필요가 없으며 응용 프로그램에서 페이지의 partial 클래스가 아닌 클래스 중 XAML에서 요소로 참조하려는 클래스만 매핑하면 됩니다.

어셈블리 작성자인 경우 CLR 특성을 어셈블리에 적용할 수 있습니다. 특수한 특성은 어셈블리의 XAML에 액세스할 수 있는 API의 소비자에 대한 XAML 네임스페이스 정보를 선언할 수 있습니다. 이렇게 하면 특정 어셈블리 이름과 모든 XAML 사용법에 대한 CLR 네임스페이스 보다는 URI 같은 식별자를 통해 사용자 지정 XAML 네임스페이스를 매핑할 수 있습니다. 또한, 어셈블리 내의 여러 CLR 네임스페이스 및 여러 어셈블리가 XAML 네임스페이스 정의를 공유할 수 있습니다. 여러 CLR 네임스페이스/어셈블리 조합의 API는 사용의 용이성 및 태그의 명확성을 위해 단일 XAML 네임스페이스에 포함할 수 있습니다. 이 기술은 Silverlight 기본 XAML 네임스페이스를 선언하기 위해 Silverlight 코어 어셈블리에 의해, sdk:에 매핑된 네임스페이스를 공유하는 Silverlight 클라이언트 SDK 어셈블리에 의해서도 사용됩니다.

사용자 지정 어셈블리 및 사용자 지정 XAML 네임스페이스 선언과 관련된 두 CLR 특성이 있습니다. Visual Studio에서 assemblyinfo 파일을 직접 편집할 필요는 없지만 특성은 사용자 지정 어셈블리에 대한 프로젝트의 어셈블리 정보에 할당됩니다(assemblyInfo.cs 또는 assemblyinfo.vb).

XmlnsDefinitionAttribute 는 CLR 네임스페이스를 XAML 네임스페이스 식별자에 할당합니다. XAML 네임스페이스 식별자는 네임스페이스 API의 작성기와 어떤 식으로든 관련이 있는 URI를 통해 xmlns 정보를 제공하는 XML 규약과 병렬로 일반적으로 URI 문자열로 제공됩니다. API를 포함하는 어셈블리는 암시적으로 특성이 적용되는 어셈블리입니다. XAML 네임스페이스에 연결할 CLR 네임스페이스는 문자열 형식에서 선언됩니다. 일반적인 패턴은 여러 XmlnsDefinitionAttribute 특성을 선언하는 것이며, 각각 다른 CLR 네임스페이스이지만 동일한 XAML 네임스페이스 식별자를 지정합니다. 다른 가능한 패턴은 하나 이상의 XAML 네임스페이스 식별자에 대해 동일한 CLR 네임스페이스를 선언하는 것입니다. 이는 어셈블리가 여러 XAML 어휘를 지원하거나(각 어휘에 대해 다른 XAML 네임스페이스를 원하는 경우), 지속적인 버전 관리 전략을 나타내는 XAML 네임스페이스를 갖고 있거나, 라이브러리에서 형식을 구성하는 방법을 기준으로 등가의 기본 XAML 네임스페이스 및 해당 네임스페이스의 하위 집합을 유지하려는 경우 유용합니다.

XmlnsPrefixAttribute 는 어셈블리에 대한 하나 이상의 XAML 네임스페이스 식별자를 참조하는 XmlnsDefinitionAttribute가 이미 있는 경우에만 일반적으로 적용되는 또 다른 CLR 특성입니다. XmlnsPrefixAttribute 는 권장하는 접두사 문자열을 XAML 네임스페이스 식별자와 연결합니다. 접두사는 사용자가 만들거나 XAML 파일에서 xmlns 매핑을 만들거나 선택할 때마다 디자인 환경의 XAML 편집 구성 요소 힌트를 받을 수 있습니다. 이 연습은 일관성 있는 태그 표현을 촉진하고 해당 XAML 요소에 사용하는 접두사에 대한 규약이 소유 어셈블리에 이미 설정되어 있기 때문에 다른 XAML 파일 간의 XAML 조각을 교환하는 등의 시나리오를 사용할 수 있습니다.

예를 들어 다음 어셈블리 정의 코드는 http://www.contoso.com/CustomXamlLib로 식별된 XAML 네임스페이스에 대해 XAML 네임스페이스 정의를 제공합니다. 어셈블리는 이 XAML 네임스페이스에 대한 형식 지원을 제공하는 두 CLR 네임스페이스를 포함합니다. 접두사 "custom"은 XAML 네임스페이스 http://www.contoso.com/CustomXamlLib가 XAML 파일에 매핑될 때마다 사용할 접두사로 승격됩니다.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft