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

XAML は、一般用と Windows ランタイム アプリのプログラミング用の両方の用途において、オブジェクト、オブジェクトのプロパティ、階層として表されるオブジェクトとプロパティの関係を宣言するために使われます。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 は、ほとんどが 1 つの 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 ボキャブラリを拡張するには、バッキング型のコード定義に型を追加します。その際には、その 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 がオブジェクト構築の動作の定義を形式化および交換する方法として役立ち、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 パーサーでは、Balloon という要素が既定の 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 名前空間に Balloon が存在しない場合は、<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 名前空間に存在することを示します。この要素を使う前に、プレフィックス party に 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 ファイルのルート要素内には 2 つの xmlns 宣言があります。Within the root element of most XAML files, there are two xmlns declarations. 1 つ目の宣言では、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"

これは、前身である複数の Microsoft テクノロジで使われていたものと同じ XAML 名前空間識別子です。このようなテクノロジでは、XAML を UI 定義のマークアップ形式としても使います。This is the same XAML namespace identifier used in several predecessor Microsoft technologies that also use XAML as a UI definition markup format. 同じ識別子の採用は意図的なものであり、既に定義済みの UI を、C++、C#、または Visual Basic を使った 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.

2 つ目の宣言では、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 で参照される特定のボキャブラリを定義する 1 つの実装であることが挙げられます。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. たとえば、部分クラスを介して 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. または、ResourceDictionary と XAML リソースの参照内のキーを持つリソースとして 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.UI.Xaml.ThreadingWindows.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. アプリの実行時に同じ XAML が Windows ランタイム 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. この 2 つの属性は、たとえば、アプリ プロジェクトに新しく 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:common: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 を含むすべての XAML ファイルで x:Class 属性とコードを含めるために作成される同じ名前空間を参照するためにマップされています。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: プレフィックスを使って 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 アプリ プロジェクトに由来する関連のプレフィックスは common: です。A related prefix that comes from a templated UWP app project is common:. このプレフィックスは、コンバーターやコマンドのようなユーティリティ クラスを含む入れ子になった "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.

vsm:vsm:

使わないでください。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 名前空間の定義を削除したうえで、VisualStateVisualStateGroup、関連オブジェクトのプレフィックスの使用法を変更して、代わりに既定の XAML 名前空間を使う必要があります。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/コードの 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 では、すべての使用法に対し、プレフィックスとしてトークン myTypes: を付けてアクセスする新しい XAML 名前空間を定義します。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 名前空間を Uniform Resource Identifier (URI) に関連付けるため、一意性および識別に関する規則が存在します。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. ただし、カスタム型をマップする XAML 名前空間の場合は、URI を指定する代わりに、プレフィックスの定義の先頭にトークン "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" 名前空間を参照できるようにする "custom1" プレフィックスをマップし、その名前空間またはアセンブリのクラスを XAML でオブジェクト要素として使用するには、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. "using:" トークンに続く値を指定する場合、C++ で入れ子になった名前空間を宣言すると、以降の入れ子になった名前空間の文字列間の区切り文字も "::" ではなく "." である必要があります。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# と Visual Basic での Windows ランタイム コンポーネントの作成」をご覧ください。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. 通常は、プレフィックス "local" を特定の XAML ページの既定のコード名前空間にマップします。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. 要素とは別に属性にプレフィックスを付けることはまれですが、これは、特にカスタム添付プロパティの場合に、必要となることのあるケースの 1 つです。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.