XAML 네임스페이스 및 네임스페이스 매핑XAML namespaces and namespace mapping

이 항목에서는 대부분의 XAML 파일의 루트 요소에 있는 XML/XAML 네임 스페이스 (xmlns) 매핑에 대해 설명 합니다.This topic explains the XML/XAML namespace (xmlns) mappings as found in the root element of most XAML files. 또한 사용자 지정 형식 및 어셈블리에 대해 비슷한 매핑을 생성 하는 방법에 대해서도 설명 합니다.It also describes how to produce similar mappings for custom types and assemblies.

XAML 네임 스페이스를 코드 정의 및 형식 라이브러리와 연결 하는 방법How XAML namespaces relate to code definition and type libraries

일반적으로 응용 프로그램을 Windows 런타임 하는 응용 프로그램의 경우에는 XAML을 사용 하 여 개체, 해당 개체의 속성 및 계층으로 표시 되는 개체 속성 관계를 선언 합니다.Both in its general purpose and for its application to Windows Runtime app programming, XAML is used to declare objects, properties of those objects, and object-property relationships expressed as hierarchies. XAML에서 선언 하는 개체는 형식 라이브러리 또는 다른 프로그래밍 기술 및 언어에서 정의 하는 다른 표현에 의해 지원 됩니다.The objects you declare in XAML are backed by type libraries or other representations that are defined by other programming techniques and languages. 이러한 라이브러리는 다음과 같을 수 있습니다.These libraries might be:

  • Windows 런타임에 대 한 기본 제공 개체 집합입니다.The built-in set of objects for the Windows Runtime. 이는 고정 된 개체 집합 이며 XAML에서 이러한 개체에 액세스 하려면 내부 형식 매핑 및 활성화 논리를 사용 합니다.This is a fixed set of objects, and accessing these objects from XAML uses internal type-mapping and activation logic.
  • Microsoft 또는 타사에서 제공 하는 분산 라이브러리Distributed libraries that are provided either by Microsoft or by third parties.
  • 앱이 통합 하 고 패키지를 재배포 하는 타사 컨트롤의 정의를 나타내는 라이브러리입니다.Libraries that represent the definition of a third-party control that your app incorporates and your package redistributes.
  • 프로젝트에 포함 되 고 사용자 코드 정의의 일부 또는 전부를 포함 하는 고유한 라이브러리.Your own library, which is part of your project and which holds some or all of your user code definitions.

지원 형식 정보는 특정 XAML 네임 스페이스 정의와 연결 됩니다.Backing type info is associated with particular XAML namespace definitions. Windows 런타임와 같은 XAML 프레임 워크는 여러 어셈블리와 여러 코드 네임 스페이스를 집계 하 여 단일 XAML 네임 스페이스에 매핑할 수 있습니다.XAML frameworks such as the Windows Runtime can aggregate multiple assemblies and multiple code namespaces to map to a single XAML namespace. 이렇게 하면 더 큰 프로그래밍 프레임 워크 또는 기술을 포함 하는 XAML 어휘 개념을 사용할 수 있습니다.This enables the concept of a XAML vocabulary that covers a larger programming framework or technology. XAML 어휘는 매우 광범위 하 게 사용할 수 있습니다. 예를 들어이 참조에서 Windows 런타임 앱에 대해 문서화 된 대부분의 XAML은 단일 XAML 어휘를 구성 합니다.A XAML vocabulary can be quite extensive—for example, most of the XAML documented for Windows Runtime apps in this reference constitutes a single XAML vocabulary. XAML 어휘도 확장 가능 합니다. 즉, 지원 코드 정의에 형식을 추가 하 여 확장 하 여 XAML 어휘에 대 한 매핑된 네임 스페이스 소스로 이미 사용 되는 코드 네임 스페이스에 형식을 포함 해야 합니다.A XAML vocabulary is also extensible: you extend it by adding types to the backing code definitions, making sure to include the types in code namespaces that are already used as mapped namespace sources for the XAML vocabulary.

XAML 프로세서는 런타임 개체 표현을 만들 때 해당 XAML 네임 스페이스와 연결 된 지원 어셈블리에서 형식 및 멤버를 조회할 수 있습니다.A XAML processor can look up types and members from the backing assemblies associated with that XAML namespace when it creates a run-time object representation. 이러한 이유로 XAML은 개체 생성 동작의 정의를 공식화 하 고 교환 하는 방법 및 XAML이 UWP 앱에 대 한 UI 정의 기술로 사용 되는 이유 때문에 유용 합니다.This is why XAML is useful as a way to formalize and exchange definitions of object-construction behavior, and why XAML is used as a UI definition technique for a UWP app.

일반적인 XAML 태그 사용의 XAML 네임 스페이스XAML namespaces in typical XAML markup usage

XAML 파일은 거의 항상 루트 요소에서 기본 XAML 네임 스페이스를 선언 합니다.A XAML file almost always declares a default XAML namespace in its root element. 기본 XAML 네임 스페이스는 접두사를 사용 하 여 한정 하지 않고 선언할 수 있는 요소를 정의 합니다.The default XAML namespace defines which elements you can declare without qualifying them by a prefix. 예를 들어 요소를 선언 하는 경우 <Balloon /> XAML 파서는 요소 풍선이 있고 기본 xaml 네임 스페이스에서 유효 하다 고 간주 합니다.For example, if you declare an element <Balloon />, a XAML parser will expect that an element Balloon exists and is valid in the default XAML namespace. 이와 대조적으로, 풍선이 정의 된 기본 XAML 네임 스페이스에 없는 경우 접두사를 사용 하 여 해당 요소 이름을 한 정해야 합니다 (예:) <party:Balloon /> .In contrast, if Balloon is not in the defined default XAML namespace, you must instead qualify that element name with a prefix, for example <party:Balloon />. 접두사는 요소가 기본 네임 스페이스와 다른 XAML 네임 스페이스에 존재 함을 나타내며,이 요소를 사용 하려면 먼저 XAML 네임 스페이스를 접두사 파티 에 매핑해야 합니다.The prefix indicates that the element exists in a different XAML namespace than the default namespace, and you must map a XAML namespace to the prefix party before you can use this element. XAML 네임 스페이스는 선언 된 특정 요소 뿐만 아니라 XAML 구조체의 해당 요소에 포함 된 모든 요소에 적용 됩니다.XAML namespaces apply to the specific element on which they are declared, and also to any element that is contained by that element in the XAML structure. 이러한 이유로 xaml 네임 스페이스는 거의 항상 XAML 파일의 루트 요소에서 선언 되므로이 상속을 활용할 수 있습니다.For this reason, XAML namespaces are almost always declared on root elements of a XAML file to take advantage of this inheritance.

기본 및 XAML 언어 XAML 네임 스페이스 선언The default and XAML language XAML namespace declarations

대부분의 XAML 파일의 루트 요소 내에는 두 개의 xmlns 선언이 있습니다.Within the root element of most XAML files, there are two xmlns declarations. 첫 번째 선언은 XAML 네임 스페이스를 기본값으로 매핑합니다. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"The first declaration maps a XAML namespace as the default: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

이는 XAML을 UI 정의 태그 형식으로 사용 하는 여러 선행 Microsoft 기술에도 사용 되는 동일한 XAML 네임 스페이스 식별자입니다.This is the same XAML namespace identifier used in several predecessor Microsoft technologies that also use XAML as a UI definition markup format. 동일한 식별자를 사용 하는 것은 의도적인 것 이며, c + +, c # 또는 Visual Basic를 사용 하 여 이전에 정의한 UI를 Windows 런타임 앱으로 마이그레이션하는 경우에 유용 합니다.The use of the same identifier is deliberate, and is helpful when you migrate previously defined UI to a Windows Runtime app using C++, C#, or Visual Basic.

두 번째 선언은 XAML 정의 언어 요소에 대 한 별도의 XAML 네임 스페이스를 매핑하고 (일반적으로)를 "x:" 접두사에 매핑합니다. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"The second declaration maps a separate XAML namespace for the XAML-defined language elements, mapping it (typically) to the "x:" prefix: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns 값과이 값이 매핑되는 "x:" 접두사는 XAML을 사용 하는 여러 선행 Microsoft 기술에 사용 되는 정의와 동일 합니다.This xmlns value, and the "x:" prefix it is mapped to, is also identical to the definitions used in several predecessor Microsoft technologies that use XAML.

이러한 선언 간의 관계는 XAML은 언어 정의이 고 Windows 런타임는 xaml을 언어로 사용 하 고 해당 형식이 XAML에서 참조 되는 특정 어휘를 정의 하는 하나의 구현입니다.The relationship between these declarations is that XAML is a language definition, and the Windows Runtime is one implementation that uses XAML as a language and defines a specific vocabulary where its types are referenced in XAML.

XAML 언어는 특정 언어 요소를 지정 하 고 이러한 각 요소는 XAML 네임 스페이스에 대해 작동 하는 XAML 프로세서 구현을 통해 액세스할 수 있어야 합니다.The XAML language specifies certain language elements, and each of these should be accessible through XAML processor implementations working against the XAML namespace. XAML 언어 XAML 네임 스페이스에 대 한 "x:" 매핑 규칙 뒤에는 프로젝트 템플릿, 샘플 코드 및 언어 기능에 대 한 설명서가 나옵니다.The "x:" mapping convention for the XAML language XAML namespace is followed by project templates, sample code, and the documentation for language features. XAML 언어 네임 스페이스는 c + +, c # 또는 Visual Basic를 사용 하는 기본 Windows 런타임 앱에도 필요한 몇 가지 자주 사용 되는 기능을 정의 합니다.The XAML language namespace defines several commonly used features that are necessary even for basic Windows Runtime apps using C++, C#, or Visual Basic. 예를 들어 partial 클래스를 통해 코드 숨김이 XAML 파일에 조인 하려면 해당 클래스의 이름을 관련 XAML 파일의 루트 요소에 있는 x:Class 특성 으로 만들어야 합니다.For example, to join any code-behind to a XAML file through a partial class, you must name that class as the x:Class attribute in the root element of the relevant XAML file. 또는 XAML 페이지에 ResourceDictionary 및 xaml 리소스 참조 의 키가 있는 리소스로 정의 된 모든 요소는 해당 개체 요소에 대해 x:Key 특성이 설정 되어 있어야 합니다.Or, any element as defined in a XAML page as a keyed resource in a ResourceDictionary and XAML resource references must have the x:Key attribute set on the object element in question.

기본 XAML 네임 스페이스에 매핑되는 코드 네임 스페이스Code namespaces that map to the default XAML namespace

다음는 현재 기본 XAML 네임 스페이스에 매핑되는 코드 네임 스페이스의 목록입니다.The folowing is a list of code namespaces that are currently mapped to the default XAML namespace.

  • Windows.UIWindows.UI
  • Windows.UI.XamlWindows.UI.Xaml
  • Windows.UI.Xaml.AutomationWindows.UI.Xaml.Automation
  • Windows.UI.Xaml.Automation.PeersWindows.UI.Xaml.Automation.Peers
  • Windows.UI.Xaml.Automation.ProviderWindows.UI.Xaml.Automation.Provider
  • Windows.UI.Xaml.Automation.TextWindows.UI.Xaml.Automation.Text
  • Windows.UI.Xaml.ControlsWindows.UI.Xaml.Controls
  • Windows.UI.Xaml.Controls.PrimitivesWindows.UI.Xaml.Controls.Primitives
  • Windows.UI.Xaml.DataWindows.UI.Xaml.Data
  • Windows.UI.Xaml.DocumentsWindows.UI.Xaml.Documents
  • Windows.UI.Xaml.InputWindows.UI.Xaml.Input
  • Windows.UI.Xaml.InteropWindows.UI.Xaml.Interop
  • Windows.UI.Xaml.MarkupWindows.UI.Xaml.Markup
  • Windows.UI.Xaml.MediaWindows.UI.Xaml.Media
  • Windows.UI.Xaml.Media.AnimationWindows.UI.Xaml.Media.Animation
  • Windows.UI.Xaml.Media.ImagingWindows.UI.Xaml.Media.Imaging
  • Windows.UI.Xaml.Media.Media3DWindows.UI.Xaml.Media.Media3D
  • Windows.UI.Xaml.NavigationWindows.UI.Xaml.Navigation
  • Windows.UI.Xaml.ResourcesWindows.UI.Xaml.Resources
  • Windows.UI.Xaml.ShapesWindows.UI.Xaml.Shapes
  • Windows. .Xaml. 스레딩Windows.UI.Xaml.Threading
  • Windows.UI.TextWindows.UI.Text

다른 XAML 네임 스페이스Other XAML namespaces

기본 네임 스페이스와 XAML 언어 XAML 네임 스페이스 "x:" 외에도 Microsoft Visual Studio에서 생성 된 앱에 대 한 초기 기본 XAML에서 다른 매핑된 XAML 네임 스페이스를 볼 수 있습니다.In addition to the default namespace and the XAML language XAML namespace "x:", you may also see other mapped XAML namespaces in the initial default XAML for apps as generated by Microsoft Visual Studio.

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

"D:" XAML 네임 스페이스는 Microsoft Visual Studio의 XAML 디자인 화면에서 디자이너 지원과 같이 디자이너를 지원 하기 위한 것입니다.The "d:" XAML namespace is intended for designer support, specifically designer support in the XAML design surfaces of Microsoft Visual Studio. "D:" XAML 네임 스페이스는 XAML 요소에 디자이너 또는 디자인 타임 특성을 사용 합니다.The" d:" XAML namespace enables designer or design-time attributes on XAML elements. 이러한 디자이너 특성은 XAML 동작의 디자인 측면에만 영향을 줍니다.These designer attributes affect only the design aspects of how XAML behaves. 응용 프로그램이 실행 될 때 Windows 런타임 XAML 파서에서 동일한 XAML이 로드 되 면 디자이너 특성이 무시 됩니다.The designer attributes are ignored when the same XAML is loaded by the Windows Runtime XAML parser when an app runs. 일반적으로 디자이너 특성은 모든 XAML 요소에서 유효 하지만 실제로 디자이너 특성을 직접 적용 하는 것이 적절 한 시나리오도 있습니다.Generally, the designer attributes are valid on any XAML element, but in practice there are only certain scenarios where applying a designer attribute yourself is appropriate. 특히 디자이너 특성의 대부분은 데이터 바인딩을 사용 하는 XAML 및 코드를 개발 하는 동안 데이터 컨텍스트 및 데이터 소스와 상호 작용 하는 데 더 나은 환경을 제공 하기 위한 것입니다.In particular, many of the designer attributes are intended to provide a better experience for interacting with data contexts and data sources while you are developing XAML and code that use data binding.

  • d:DesignHeight 및 d:DesignWidth 특성: 이러한 특성은 Visual Studio 또는 다른 XAML 디자이너 화면에서 만드는 XAML 파일의 루트에 적용 되는 경우도 있습니다.d:DesignHeight and d:DesignWidth attributes: These attributes are sometimes applied to the root of a XAML file that Visual Studio or another XAML designer surface creates for you. 예를 들어 이러한 특성은 새 usercontrol 을 앱 프로젝트에 추가 하는 경우 만들어지는 XAML의 UserControl 루트에 설정 됩니다.For example, these attributes are set on the UserControl root of the XAML that is created if you add a new UserControl to your app project. 이러한 특성을 사용 하면 xaml 콘텐츠의 컴퍼지션을 보다 쉽게 디자인할 수 있습니다. 따라서 XAML 콘텐츠를 컨트롤 인스턴스나 더 큰 UI 페이지의 다른 부분에 사용 하는 경우에도 존재 하는 레이아웃 제약 조건을 미리 결정할 수 있습니다.These attributes make it easier to design the composition of the XAML content, so that you have some anticipation of the layout constraints that might exist once that XAML content is used for a control instance or other part of a larger UI page.

참고    Microsoft Silverlight에서 XAML을 마이그레이션하는 경우 전체 UI 페이지를 나타내는 루트 요소에 이러한 특성이 있을 수 있습니다.Note  If you are migrating XAML from Microsoft Silverlight you might have these attributes on root elements that represent an entire UI page. 이 경우 특성을 제거 하는 것이 좋습니다.You might want to remove the attributes in this case. 시뮬레이터와 같은 XAML 디자이너의 다른 기능은 d:DesignHeightd:DesignWidth를 사용 하는 고정 크기 페이지 레이아웃 보다 크기 조정 및 보기 상태를 처리 하는 페이지 레이아웃을 디자인 하는 데 더 유용할 수 있습니다.Other features of the XAML designers such as the simulator are probably more useful for designing page layouts that handle scaling and view states well than is a fixed size page layout using d:DesignHeight and d:DesignWidth.

  • d:DataContext 특성: 페이지 루트 또는 컨트롤에 대해이 특성을 설정 하 여 개체에 포함 된 명시적 또는 상속 된 DataContext 를 재정의할 수 있습니다.d:DataContext attribute: You can set this attribute on a page root or a control to override any explicit or inherited DataContext that object otherwise has.
  • d:DesignSource 특성: 소스를 재정의 하는 collectionviewsource에 대 한 디자인 타임 데이터 소스를 지정 합니다.d:DesignSource attribute: Specifies a design-time data source for a CollectionViewSource, overriding Source.
  • d:DesignInstance 및 d:DesignData 태그 확장: 이러한 태그 확장은 d:DataContext 또는 d:DesignSource에 대 한 디자인 타임 데이터 리소스를 제공 하는 데 사용 됩니다.d:DesignInstance and d:DesignData markup extensions: These markup extensions are used to provide the design-time data resources for either d:DataContext or d:DesignSource. 여기서는 디자인 타임 데이터 리소스를 사용 하는 방법을 완벽 하 게 문서화 하지 않습니다.We won't fully document how to use design-time data resources here. 자세한 내용은 디자인 타임 특성을 참조 하세요.For more info, see Design-Time Attributes. 몇 가지 사용 예제는 디자인 화면의 샘플 데이터 및 프로토타입작성을 참조 하세요.For some usage examples, see Sample data on the design surface, and for prototyping.

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

"mc:"는 XAML을 읽기 위한 태그 호환성 모드를 나타내고 지원 합니다." mc:" indicates and supports a markup compatibility mode for reading XAML. 일반적으로 "d:" 접두사는 mc: Ignorable특성에 연결 됩니다.Typically, the "d:" prefix is associated with the attribute mc:Ignorable. 이 방법을 사용 하면 런타임 XAML 파서가 "d:"에서 디자인 특성을 무시할 수 있습니다.This technique enables run-time XAML parsers to ignore the design attributes in "d:".

로컬:일반:local: and common:

"local:"은 템플릿 기반 UWP 앱 프로젝트에 대 한 XAML 페이지 내에서 자주 매핑되는 접두사입니다."local:" is a prefix that is often mapped for you within the XAML pages for a templated UWP app project. 이 클래스는 app.xaml 특성과 app.xaml을 비롯 한 모든 XAML 파일에 대 한 코드를 포함 하기 위해 만든 동일한 네임 스페이스를 참조 하도록 매핑됩니다.It's mapped to refer to the same namespace that's created to contain the x:Class attribute and code for all the XAML files including app.xaml. 이 네임 스페이스의 XAML에서 사용할 사용자 지정 클래스를 정의 하는 경우 local: prefix를 사용 하 여 xaml에서 사용자 지정 형식을 참조할 수 있습니다.So long as you define any custom classes you want to use in XAML in this same namespace, you can use the local: prefix to refer to your custom types in XAML. 템플릿 기반 UWP 앱 프로젝트에서 제공 되는 관련 접두사는 일반적입니다.A related prefix that comes from a templated UWP app project is common:. 이 접두사는 변환기 및 명령과 같은 유틸리티 클래스를 포함 하는 중첩 된 "Common" 네임 스페이스를 나타내며 솔루션 탐색기 뷰의 공용 폴더에서 정의를 찾을 수 있습니다.This prefix refers to a nested "Common" namespace that contains utility classes such as converters and commands, and you can find the definitions in the Common folder in the Solution Explorer view.

vsmvsm:

사용하지 마십시오.Do not use. "vsm:"은 다른 Microsoft 기술에서 가져온 이전 XAML 템플릿에서 때때로 표시 되는 접두사입니다."vsm:" is a prefix that is sometimes seen in older XAML templates imported from other Microsoft technologies. 네임 스페이스는 원래 레거시 네임 스페이스 도구 문제를 해결 했습니다.The namespace originally addressed a legacy namespace tooling issue. Windows 런타임에 사용 하는 모든 XAML에서 "vsm:"에 대 한 XAML 네임 스페이스 정의를 삭제 하 고 대신 기본 XAML 네임 스페이스를 사용 하도록 Visualstate, visualstategroup 및 관련 개체에 대 한 접두사 사용을 변경 해야 합니다.You should delete XAML namespace definitions for "vsm:" in any XAML you use for the Windows Runtime, and change any prefix usages for VisualState, VisualStateGroup and related objects to use the default XAML namespace instead. XAML 마이그레이션에 대 한 자세한 내용은 Silverlight 또는 WPF XAML/code를 Windows 런타임 앱으로 마이그레이션을 참조 하세요.For more info on XAML migration, see Migrating Silverlight or WPF XAML/code to a Windows Runtime app.

XAML 네임 스페이스 및 접두사에 사용자 지정 형식 매핑Mapping custom types to XAML namespaces and prefixes

고유 사용자 지정 유형에 액세스하는 데 XAML을 사용할 수 있도록 XAML 네임스페이스를 매핑할 수 있습니다.You can map a XAML namespace so that you can use XAML to access your own custom types. 즉, 사용자 지정 형식을 정의 하 고이를 사용 하기 위해 접두사와 함께 XAML 네임 스페이스를 할당 하는 코드 표현에 있는 코드 네임 스페이스를 매핑합니다.In other words, you are mapping a code namespace as it exists in a code representation that defines the custom type, and assigning it a XAML namespace along with a prefix for usage. XAML에 대 한 사용자 지정 형식은 Microsoft .NET 언어 (c # 또는 Microsoft Visual Basic) 또는 c + +에서 정의할 수 있습니다.Custom types for XAML can be defined either in a Microsoft .NET language (C# or Microsoft Visual Basic) or in C++. 매핑은 xmlns 접두사를 정의 하 여 수행 됩니다.The mapping is made by defining an xmlns prefix. 예를 들어는 xmlns:myTypes 토큰을 사용 하 여 모든 사용을 접두사로 사용 하 여 액세스 되는 새 XAML 네임 스페이스를 정의 합니다 myTypes: .For example, xmlns:myTypes defines a new XAML namespace that is accessed by prefixing all usages with the token myTypes:.

Xmlns 정의는 접두사 명명 뿐만 아니라 값을 포함 합니다.An xmlns definition includes a value as well as the prefix naming. 값은 등호 뒤에 나오는 따옴표 안에 표시 되는 문자열입니다.The value is a string that goes inside quotation marks, following an equal sign. 일반적인 XML 규칙은 XML 네임 스페이스를 URI (Uniform Resource Identifier)와 연결 하 여 고유성 및 식별 규칙을 사용 하는 것입니다.A common XML convention is to associate the XML namespace with a Uniform Resource Identifier (URI), so that there is a convention for uniqueness and identification. 또한 기본 XAML 네임 스페이스와 XAML 언어 XAML 네임 스페이스 뿐만 아니라 Windows 런타임 XAML에서 사용 되는 덜 사용 되는 XAML 네임 스페이스에 대 한이 규칙도 볼 수 있습니다.You also see this convention for the default XAML namespace and the XAML language XAML namespace, as well as for some lesser-used XAML namespaces that are used by Windows Runtime XAML. 그러나 URI를 지정 하는 대신 사용자 지정 형식을 매핑하는 XAML 네임 스페이스의 경우 "using:" 토큰을 사용 하 여 접두사 정의를 시작 합니다.But for a XAML namespace that maps custom types, instead of specifying a URI, you begin the prefix definition with the token "using:". "Using:" 토큰을 따라 코드 네임 스페이스의 이름을로 합니다.Following the "using:" token, you then name the code namespace.

예를 들어 "CustomClasses" 네임 스페이스를 참조 하 고 해당 네임 스페이스 또는 어셈블리의 클래스를 XAML의 개체 요소로 사용할 수 있도록 하는 "custom1" 접두사를 매핑하려면 XAML 페이지에 루트 요소에 대 한 다음 매핑이 포함 되어야 합니다. xmlns:custom1="using:CustomClasses"For example, to map a "custom1" prefix that enables you to reference a "CustomClasses" namespace, and use classes from that namespace or assembly as object elements in XAML, your XAML page should include the following mapping on the root element: xmlns:custom1="using:CustomClasses"

동일한 페이지 범위의 부분 클래스를 매핑할 필요가 없습니다.Partial classes of the same page scope do not need to be mapped. 예를 들어 페이지의 XAML UI 정의에서 이벤트를 처리 하기 위해 정의한 모든 이벤트 처리기를 참조 하는 데 접두사가 필요 하지 않습니다.For example, you don't need prefixes to reference any event handlers that you defined for handling events from the XAML UI definition of your page. 또한 c + +, c # 또는 Visual Basic를 사용 하 여 Windows 런타임 앱에 대해 생성 된 프로젝트의 Visual Studio 시작 XAML 페이지는 대부분 프로젝트 지정 기본 네임 스페이스와 부분 클래스 정의에 사용 되는 네임 스페이스를 참조 하는 "local:" 접두사를 이미 매핑합니다.Also, many of the starting XAML pages from Visual Studio generated projects for a Windows Runtime app using C++, C#, or Visual Basic already map a "local:" prefix, which references the project-specified default namespace and the namespace used by partial class definitions.

CLR 언어 규칙CLR language rules

.NET 언어 (c # 또는 Microsoft Visual Basic)에서 지원 코드를 작성 하는 경우 네임 스페이스 이름의 일부로 점 (".")을 사용 하는 규칙을 사용 하 여 코드 네임 스페이스의 개념적 계층 구조를 만들 수 있습니다.If you are writing your backing code in a .NET language (C# or Microsoft Visual Basic), you might be using conventions that use a dot (".") as part of namespace names to create a conceptual hierarchy of code namespaces. 네임 스페이스 정의에 점이 포함 되어 있으면 "using:" 토큰 후에 지정 하는 값의 일부가 점입니다.If your namespace definition contains a dot, the dot should be part of the value you specify after the "using:" token.

코드 기반 파일이 나 코드 정의 파일이 c + + 파일인 경우 XAML 구문에 차이가 없도록 CLR (공용 언어 런타임) 언어 폼을 따르는 특정 규칙이 있습니다.If your code-behind file or code definition file is a C++ file, there are certain conventions that still follow the common language runtime (CLR) language form, so that there is no difference in the XAML syntax. C + +에서 중첩 된 네임 스페이스를 선언 하는 경우 "using:" 토큰 다음에 오는 값을 지정할 때 연속 된 중첩 된 네임 스페이스 문자열 간의 구분 기호는 "::"이 아니라 "." 여야 합니다.If you declare nested namespaces in C++, the separator between the successive nested namespace strings should be "." rather than "::" when you specify the value that follows the "using:" token.

XAML과 함께 사용 하기 위해 코드를 정의할 때 중첩 형식 (예: 클래스 내에 열거형 중첩)을 사용 하지 마세요.Don't use nested types (such as nesting an enumeration within a class) when you define your code for use with XAML. 중첩 형식은 평가할 수 없습니다.Nested types can't be evaluated. XAML 파서는 점이 네임 스페이스 이름의 일부가 아니라 중첩 된 형식 이름의 일부임을 구분할 수 있는 방법이 없습니다.There's no way for the XAML parser to distinguish that a dot is part of the nested type name rather than part of the namespace name.

사용자 지정 형식 및 어셈블리Custom types and assemblies

XAML 네임 스페이스에 대 한 지원 형식을 정의 하는 어셈블리의 이름이 매핑에서 지정 되지 않았습니다.The name of the assembly that defines the backing types for a XAML namespace is not specified in the mapping. 어셈블리를 사용할 수 있는 논리는 앱 정의 수준에서 제어 되며 기본 앱 배포 및 보안 원칙의 일부입니다.The logic for which assemblies are available is controlled at the app-definition level and is part of basic app deployment and security principles. XAML에 대 한 코드 정의 소스로 포함 하려는 모든 어셈블리를 프로젝트 설정에서 종속 어셈블리로 선언 합니다.Declare any assembly that you want included as a code-definition source for XAML as a dependent assembly in project settings. 자세한 내용은 c #에서 Windows 런타임 구성 요소 만들기 및 Visual Basic를 참조 하세요.For more info, see Creating Windows Runtime components in C# and Visual Basic.

기본 앱의 응용 프로그램 정의 또는 페이지 정의에서 사용자 지정 형식을 참조 하는 경우에는 추가 종속 어셈블리 구성 없이 해당 형식을 사용할 수 있지만 여전히 이러한 형식을 포함 하는 코드 네임 스페이스를 매핑해야 합니다.If you are referencing custom types from the primary app's application definition or page definitions, those types are available without further dependent assembly configuration, but you still must map the code namespace that contains those types. 일반적인 규칙은 지정 된 XAML 페이지의 기본 코드 네임 스페이스에 대 한 접두사 "local"을 매핑하는 것입니다.A common convention is to map the prefix "local" for the default code namespace of any given XAML page. 이 규칙은 종종 XAML 프로젝트용 프로젝트 템플릿 시작에 포함 됩니다.This convention is often included in starting project templates for XAML projects.

연결된 속성Attached properties

연결 된 속성을 참조 하는 경우 연결 된 속성 이름의 소유자 형식 부분은 기본 XAML 네임 스페이스에 있거나 접두사가 있어야 합니다.If you are referencing attached properties, the owner-type portion of the attached property name must either be in the default XAML namespace or be prefixed. 특성의 요소와는 별도로 접두사를 지정 하는 것은 드문 경우 이지만 특히 사용자 지정 연결 된 속성의 경우에는 반드시 필요한 경우가 있습니다.It's rare to prefix attributes separately from their elements but this is one case where it's sometimes required, particularly for a custom attached property. 자세한 내용은 사용자 지정 연결 된 속성을 참조 하세요.For more info, see Custom attached properties.