XAML-Namespaces und NamespacezuordnungXAML namespaces and namespace mapping

Im Folgenden werden die XML/XAML-Namespacezuordnungen (xmlns) erläutert, wie sie im Stammelement der meisten XAML-Dateien zu finden sind.This topic explains the XML/XAML namespace (xmlns) mappings as found in the root element of most XAML files. Darüber hinaus wird erläutert, wie ähnliche Zuordnungen für benutzerdefinierte Typen und Assemblys erstellt werden.It also describes how to produce similar mappings for custom types and assemblies.

Bezug von XAML-Namespaces zu Codedefinitions- und TypbibliothekenHow XAML namespaces relate to code definition and type libraries

Die XAML-Sprache wird sowohl im Allgemeinen als auch bei der Programmierung von Windows-Runtime-Apps dazu verwendet, Objekte, Eigenschaften dieser Objekte und in Hierarchien dargestellte Objekt/Eigenschaft-Beziehungen zu deklarieren.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. Die in XAML deklarierten Objekte werden von Typbibliotheken oder anderen Darstellungen unterstützt, die von anderen Programmiermethoden und -sprachen definiert werden.The objects you declare in XAML are backed by type libraries or other representations that are defined by other programming techniques and languages. Bei diesen Bibliotheken kann es sich um Folgende handeln:These libraries might be:

  • Den integrierten Objektsatz für die Windows-Runtime.The built-in set of objects for the Windows Runtime. Dabei handelt es sich um einen festen Satz mit Objekten, und beim Zugriff auf diese Objekte über XAML wird eine interne Logik zur Typzuordnung und Aktivierung verwendet.This is a fixed set of objects, and accessing these objects from XAML uses internal type-mapping and activation logic.
  • Verteilte Bibliotheken, die entweder von Microsoft oder von Dritten zur Verfügung gestellt werden.Distributed libraries that are provided either by Microsoft or by third parties.
  • Bibliotheken, die die Definition eines Drittanbieter-Steuerelements darstellen und die in Ihrer App und Ihren weitervertreibbaren Paketkomponenten integriert sind.Libraries that represent the definition of a third-party control that your app incorporates and your package redistributes.
  • Ihre eigene Bibliothek, die zu Ihrem Projekt gehört und die alle Benutzercodedefinitionen oder einen Teil davon enthält.Your own library, which is part of your project and which holds some or all of your user code definitions.

Unterstützungsinformationen sind bestimmten XAML-Namespacedefinitionen zugeordnet.Backing type info is associated with particular XAML namespace definitions. XAML-Frameworks, wie die Windows-Runtime, können mehrere Assemblys und Code-Namespaces aggregieren, die einem einzelnen XAML-Namespace zugeordnet werden.XAML frameworks such as the Windows Runtime can aggregate multiple assemblies and multiple code namespaces to map to a single XAML namespace. Damit wird das Konzept eines XAML-Vokabulars möglich, das ein größeres Programmierframework oder eine größere Programmiertechnologie abdeckt.This enables the concept of a XAML vocabulary that covers a larger programming framework or technology. Ein XAML-Vokabular kann ziemlich umfangreich sein, beispielsweise stellt ein Großteil des für Windows-Runtime-Apps dokumentierten XAML-Codes ein einziges XAML-Vokabular dar.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. Ein XAML-Vokabular ist auch erweiterbar: Sie erweitern es, indem Sie den zugrunde liegenden Codedefinitionen Typen hinzufügen. Dabei muss darauf geachtet werden, dass die Typen in Codenamespaces aufgenommen werden, die bereits als zugeordnete Namespacequellen für das XAML-Vokabular verwenden werden.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.

Ein XAML-Verarbeiter kann Typen und Elemente in den Unterstützungsassemblys suchen, die dem XAML-Namespace zugeordnet sind, wenn er eine Laufzeitobjektdarstellung erstellt.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. Aus diesem Grund ist XAML nützlich, um Definitionen von Objekt Konstruktions Verhalten zu formalisieren und auszutauschen, und warum XAML als Benutzeroberflächen-Definitions Technik für eine UWP-App verwendet wird.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-Namespaces bei typischer XAML-MarkupverwendungXAML namespaces in typical XAML markup usage

Eine XAML-Datei deklariert beinahe immer einen Standard-XAML-Namespace im Stammelement.A XAML file almost always declares a default XAML namespace in its root element. Der Standard-XAML-Namespace definiert, welche Elemente deklariert werden können, ohne sie durch ein Präfix zu qualifizieren.The default XAML namespace defines which elements you can declare without qualifying them by a prefix. Wenn ein Element zum Beispiel als <Balloon /> deklariert wird, erwartet ein XAML-Parser, dass das Element Balloon existiert und im Standard-XAML-Namespace gültig ist.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. Dagegen müssen Sie den Elementnamen mit einem Präfix qualifizieren, wenn Balloon nicht der definierte Standard-XAML-Namespace ist, etwa <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 />. Das Präfix gibt an, dass das Element bereits in einem anderen XAML-Namespace als dem Standardnamespace existiert, und Sie müssen dem Präfix party einen anderen XAML-Namespace zuordnen, bevor Sie dieses Element verwenden können.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-Namespaces beziehen sich speziell auf das Element, für das sie deklariert wurden, und darüber hinaus auf alle Elemente, die sich in diesem Element in der XAML-Struktur befinden.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. Aus diesem Grund werden XAML-Namespaces so gut wie immer für Stammelemente einer XAML-Datei deklariert, sodass die Vorteile dieser Vererbung genutzt werden können.For this reason, XAML namespaces are almost always declared on root elements of a XAML file to take advantage of this inheritance.

Die standardmäßigen XAML-Sprach-XAML-Namespace-DeklarationenThe default and XAML language XAML namespace declarations

Innerhalb des Stammelements der meisten XAML-Dateien sind zwei xmlns-Deklarationen zu finden.Within the root element of most XAML files, there are two xmlns declarations. Die erste Deklaration ordnet einen XAML-Namespace als Standard zu: 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"

Dabei handelt es sich um denselben XAML-Namespacebezeichner, der bereits in vielen Vorgängertechnologien von Microsoft zum Einsatz kam, die ebenfalls XAML als Markupformat für die Oberflächendefinition genutzt haben.This is the same XAML namespace identifier used in several predecessor Microsoft technologies that also use XAML as a UI definition markup format. Die Verwendung desselben Bezeichners erfolgt bewusst und ist nützlich, wenn Sie bereits zuvor definierte Benutzeroberflächen mithilfe von C++, C# oder Visual Basic in eine Windows-Runtime-App migrieren.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.

Die zweite Deklaration ordnet für die XAML-definierten Sprachelemente einen separaten XAML-Namespace zu, wobei die Zuordnung normalerweise zum Präfix „x:“ erfolgt: 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"

Dieser xmlns-Wert und das Präfix „x:“, dem er zugeordnet ist, sind ebenfalls identisch mit den Definitionen, die in verschiedenen Vorgängertechnologien mit XAML von Microsoft verwendet wurden.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.

Die Beziehung zwischen diesen Deklarationen ist, dass XAML eine Sprachdefinition ist. Die Windows-Runtime ist eine Implementierung, die XAML als eine Sprache nutzt und ein spezielles Vokabular definiert, in dem ihre Typen in XAML referenziert werden.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.

Die XAML-Sprache gibt bestimmte Sprachelemente an, und jedes dieser Elemente sollte über XAML-Verarbeitungsimplementierungen verfügbar sein und für den XAML-Namespace arbeiten.The XAML language specifies certain language elements, and each of these should be accessible through XAML processor implementations working against the XAML namespace. Auf die „x:“-Zuordnungskonvention für den XAML-Sprach-XML-Namespace folgen Projektvorlagen, Beispielcode und die Dokumentation für Sprachfunktionen.The "x:" mapping convention for the XAML language XAML namespace is followed by project templates, sample code, and the documentation for language features. Der XAML-Sprachnamespace definiert verschiedene häufig verwendete Funktionen, die selbst für einfache Windows-Runtime-Apps mit C++, C# oder Visual Basic erforderlich sind.The XAML language namespace defines several commonly used features that are necessary even for basic Windows Runtime apps using C++, C#, or Visual Basic. Soll z. B. CodeBehind durch eine partielle Klasse einer XAML-Datei hinzugefügt werden, muss die jeweilige Klasse im Stammelement der relevanten XAML-Datei als x:Class-Attribut benannt werden.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. Oder: In einem beliebigen per XAML-Seite als Schlüsselressource definierten Element in einem ResourceDictionary- und XAML-Ressourcenverweis muss das x:Key-Attribut auf das relevante Objektelement festgelegt sein.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.

Codenamespaces, die dem XAML-Standard Namespace zugeordnet sind.Code namespaces that map to the default XAML namespace

Die foldue-Liste ist eine Liste von codenamespaces, die derzeit dem standardmäßigen XAML-Namespace zugeordnet sind.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

Andere XAML-NamespacesOther XAML namespaces

Zusätzlich zum Standardnamespace und dem XAML-Namespace „x:“ der Programmiersprache XAML sind im anfänglichen standardmäßigen XAML-Code für Apps u. U. weitere zugeordnete XAML-Namespaces enthalten, die von Microsoft Visual Studio generiert wurden.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)

Der XAML-Namespace „d:“ soll der Designerunterstützung dienen, speziell der Designerunterstützung in den XAML-Entwurfsoberflächen von Microsoft Visual Studio.The "d:" XAML namespace is intended for designer support, specifically designer support in the XAML design surfaces of Microsoft Visual Studio. Der XAML-Namespace „d:“ ermöglicht Designer- und Designzeitattribute in XAML-Elementen.The" d:" XAML namespace enables designer or design-time attributes on XAML elements. Diese Designerattribute wirken sich lediglich auf die Designaspekte davon aus, wie sich XAML verhält.These designer attributes affect only the design aspects of how XAML behaves. Die Designerattribute werden ignoriert, wenn derselbe XAML-Code vom Windows-Runtime-XAML-Parser beim Ausführen einer App geladen wird.The designer attributes are ignored when the same XAML is loaded by the Windows Runtime XAML parser when an app runs. Im Allgemeinen sind Designerattribute für alle XAML-Elemente gültig, in der Praxis bestehen jedoch nur bestimmte Szenarien, in denen die Anwendung eines Designerattributs durch Sie selbst angebracht ist.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. Viele der Designerattribute sind insbesondere dazu vorgesehen, eine höhere Benutzerfreundlichkeit bei der Interaktion mit Datenkontexten und Datenquellen zu gewährleisten, während Sie XAML und Code entwickeln, für die bzw. den die Datenbindung verwendet wird.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.

  • Attribute „d:DesignHeight“ und „d:DesignWidth“: Diese Attribute werden gelegentlich auf den Stamm der XAML-Datei angewendet, die von Visual Studio oder einer anderen XAML-Designeroberfläche erstellt wird.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. Beispielsweise werden diese Attribute am UserControl-Stamm des XAML festgelegt, das beim Hinzufügen eines neuen UserControl zu Ihrem App-Projekt erstellt wird.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. Diese Attribute vereinfachen das Entwerfen der Zusammensetzung des XAML-Inhalts, sodass Sie bereits im Voraus die Layoutbeschränkungen berücksichtigen können, die u. U. vorhanden sind, sobald der XAML-Inhalt für eine Steuerelementinstanz oder einen anderen Teil einer größeren UI-Seite verwendet wird.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.

Hinweis    Wenn Sie XAML von Microsoft Silverlight migrieren, verfügen Sie möglicherweise über diese Attribute für Stamm Elemente, die eine gesamte UI-Seite darstellen.Note  If you are migrating XAML from Microsoft Silverlight you might have these attributes on root elements that represent an entire UI page. In diesem Fall wird empfohlen, die Attribute zu entfernen.You might want to remove the attributes in this case. Andere Features des XAML-Designers wie der Simulator eignen sich wahrscheinlich besser zum Entwerfen von Seitenlayouts für die Verarbeitung von Skalierungen und Ansichtszuständen als ein Seitenlayout mit fester Größe mit d:DesignHeight und d: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-Attribut: Sie können dieses Attribut an einem Seitenstamm oder einem Steuerelement festlegen, um alle expliziten oder geerbten DataContext-Elemente zu überschreiben, die das Objekt ansonsten hat.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-Attribut: Gibt eine Entwurfszeit-Datenquelle für CollectionViewSource an, die Source überschreibt.d:DesignSource attribute: Specifies a design-time data source for a CollectionViewSource, overriding Source.
  • Markuperweiterungen „d:DesignInstance“ und „d:DesignData“: Diese Markuperweiterungen werden verwendet, um die Entwurfszeit-Datenressourcen für d:DataContext oder d:DesignSource bereitzustellen.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. Die Verwendung von Designzeit-Datenressourcen wird hier nicht vollständig erläutert.We won't fully document how to use design-time data resources here. Weitere Informationen finden Sie unter Entwurfszeitattribute.For more info, see Design-Time Attributes. Einige Verwendungsbeispiele finden Sie unter Beispieldaten für die Entwurfsoberfläche und Prototyperstellung.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:“ gibt einen Markupkompatibilitätsmodus zum Lesen von XAML an und unterstützt diesen." mc:" indicates and supports a markup compatibility mode for reading XAML. In der Regel gehört das „d:“-Präfix zum Attribut mc:Ignorable.Typically, the "d:" prefix is associated with the attribute mc:Ignorable. Diese Methode ermöglicht es Laufzeit-XAML-Parsern, die Designattribute in „d:“ zu ignorieren.This technique enables run-time XAML parsers to ignore the design attributes in "d:".

local: und common:local: and common:

"local:" ist ein Präfix, das häufig in den XAML-Seiten für ein auf Vorlagen basiertes UWP-App-Projekt zugeordnet wird."local:" is a prefix that is often mapped for you within the XAML pages for a templated UWP app project. Es wird so zugeordnet, dass es auf denselben Namespace verweist, der erstellt wird, um das x:Class-Attribut und den Code für alle XAML-Dateien aufzunehmen, einschließlich app.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. Wenn Sie benutzerdefinierte Klassen für die Verwendung in XAML in diesem Namespace definieren, können Sie mit dem Präfix local: auf Ihre benutzerdefinierten Typen in XAML verweisen.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. Ein verknüpftes Präfix, das aus einem auf Vorlagen basierenden UWP-App-Projekt stammt, ist Common:.A related prefix that comes from a templated UWP app project is common:. Dieses Präfix verweist auf einen geschachtelten „Common“-Namespace, der Hilfsklassen wie z. B. Konverter und Befehle enthält. Die Definitionen finden Sie im Ordner „Common“ in der Projektmappen-Explorer-Ansicht.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:

Darf nicht verwendet werden.Do not use. „vsm:“ ist ein Präfix, das manchmal in älteren XAML-Vorlagen auftaucht, die aus anderen Microsoft-Technologien importiert wurden."vsm:" is a prefix that is sometimes seen in older XAML templates imported from other Microsoft technologies. Der Namespace diente ursprünglich der Behebung eines Toolproblems mit älteren Namespaces.The namespace originally addressed a legacy namespace tooling issue. Sie sollten XAML-Namespacedefinitionen für „vsm:“ im gesamten XAML-Code löschen, den Sie für die Windows-Runtime verwenden. Zudem sollten Sie alle Präfixverwendungen für VisualState, VisualStateGroup und zugehörige Objekte so ändern, dass stattdessen der Standard-XAML-Namespace verwendet wird.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. Weitere Informationen zur XAML-Migration finden Sie unter Migrieren von Silverlight- oder WPF-XAML-Code in eine Windows-Runtime-App.For more info on XAML migration, see Migrating Silverlight or WPF XAML/code to a Windows Runtime app.

Zuordnen von benutzerdefinierten Typen zu XAML-Namespaces und -PräfixenMapping custom types to XAML namespaces and prefixes

Sie können einen XAML-Namespace so zuordnen, dass Sie XAML zum Zugriff auf Ihre benutzerdefinierten Typen nutzen können.You can map a XAML namespace so that you can use XAML to access your own custom types. In anderen Worten: Sie ordnen einen Codenamespace zu, so wie er in der Codedarstellung existiert, die den benutzerdefinierten Typ definiert, und weisen diesem einen XAML-Namespace zusammen mit einem Präfix zur Verwendung zu.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. Benutzerdefinierte Typen für XAML können entweder in einer Microsoft .NET-Sprache (C# oder Microsoft Visual Basic) oder in C++ definiert werden.Custom types for XAML can be defined either in a Microsoft .NET language (C# or Microsoft Visual Basic) or in C++. Die Zuordnung geschieht über die Definition eines xmlns-Präfixes.The mapping is made by defining an xmlns prefix. Beispielsweise definiert xmlns:myTypes einen neuen XAML-Namespace, auf den zugegriffen wird, indem alle Verwendungen mit einem Präfix versehen werden, nämlich dem Token myTypes:.For example, xmlns:myTypes defines a new XAML namespace that is accessed by prefixing all usages with the token myTypes:.

Eine xmlns-Definition enthält einen Wert und den Präfixnamen.An xmlns definition includes a value as well as the prefix naming. Der Wert entspricht einer Zeichenfolge, die in Anführungszeichen gesetzt wird und auf ein Gleichheitszeichen folgt.The value is a string that goes inside quotation marks, following an equal sign. Eine gängige XML-Konvention ist die Zuordnung einer URI (Uniform Resource Identifier) zum XML-Namespace, sodass eine Konvention für Eindeutigkeit und Identifikation besteht.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. Diese Konvention besteht auch für den Standard-XML-Namespace und den XAML-Sprach-XAML-Namespace, zudem für einige weniger häufig eingesetzte XAML-Namespaces, die von Windows-Runtime-XAML verwendet werden.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. Jedoch wird bei einem XAML-Namespace zur Zuordnung benutzerdefinierter Typen keine URI angegeben, sondern die Präfixdefinition mit dem Token „using:“ begonnen.But for a XAML namespace that maps custom types, instead of specifying a URI, you begin the prefix definition with the token "using:". Nach dem Token „using:“ wird der Codenamespace benannt.Following the "using:" token, you then name the code namespace.

Um beispielsweise ein „custom1“-Präfix zuzuordnen, das Ihnen die Referenzierung eines „CustomClasses“-Namespace und die Verwendung der Klassen von diesem Namespace oder dieser Assembly als Objektelemente in XAML ermöglicht, sollte Ihre XAML-Seite die folgenden Zuordnungen im Stammelement aufweisen: 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"

Partielle Klassen desselben Seitenbereichs müssen nicht zugeordnet werden.Partial classes of the same page scope do not need to be mapped. Beispielsweise benötigen Sie keine Präfixe, um beliebige Ereignishandler zu referenzieren, die Sie zur Handhabung von Ereignissen von der XAML-Oberflächendefinition Ihrer Seite definierten haben.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. Darüber hinaus ordnen viele der Start-XAML-Seiten der von Visual Studio generierten Projekte für Windows-Runtime-Apps mit C++, C# oder Visual Basic bereits ein „local:“-Präfix zu, das den im Projekt angegebenen Standardnamespace und den Namespace referenziert, der von Definitionen partieller Klassen verwendet wird.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-SprachregelnCLR language rules

Wenn Sie Ihren Unterstützungscode in einer .NET-Sprache (C# oder Microsoft Visual Basic) schreiben, richten Sie sich möglicherweise nach einer Konvention, wonach ein Punkt („.“) im Namespacenamen enthalten ist, sodass eine konzeptionelle Hierarchie von Codenamespaces entsteht.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. Wenn Ihre Namespacedefinition einen Punkt enthält, sollte der Punkt Teil des Werts sein, den Sie nach dem Token „using:“ angeben.If your namespace definition contains a dot, the dot should be part of the value you specify after the "using:" token.

Wenn Ihre CodeBehind-Datei oder Codedefinitionsdatei eine C++-Datei ist, richten sich bestimmte Konventionen trotzdem nach der CLR-Sprachform (Common Language Runtime), damit keine Abweichungen in der XAML-Syntax auftreten.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. Wenn Sie geschachtelte Namespaces in C++ deklarieren, sollte das Trennzeichen zwischen den aufeinander folgenden geschachtelten Zeichenfolgen „.“ statt „::“ sein, wenn Sie den Wert angeben, der auf das Token „using:“ folgt.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.

Verwenden Sie keine geschachtelten Typen (z. B. Schachtelung einer Enumeration innerhalb einer Klasse), wenn Sie Ihren Code für die Verwendung mit XAML definieren.Don't use nested types (such as nesting an enumeration within a class) when you define your code for use with XAML. Geschachtelte Typen können nicht ausgewertet werden.Nested types can't be evaluated. Für den XAML-Parser besteht keine Möglichkeit, zu erkennen, ob ein Punkt Teil des Namens des geschachtelten Typs oder Teil des Namespace-Namens ist.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.

Benutzerdefinierte Typen und AssemblysCustom types and assemblies

Der Name der Assembly, die die Unterstützungstypen für einen XAML-Namespace definiert, wird in der Zuordnung nicht angegeben.The name of the assembly that defines the backing types for a XAML namespace is not specified in the mapping. Die Logik, für die Assemblys zur Verfügung stehen, wird auf App-Definitionsebene gesteuert und ist Teil von grundlegenden App-Bereitstellungs- und -Sicherheitsprinzipien.The logic for which assemblies are available is controlled at the app-definition level and is part of basic app deployment and security principles. Deklarieren Sie alle Assemblys, die als Codedefinitionsquelle für XAML eingeschlossen werden sollen, als abhängige Assemblys in den Projekteinstellungen.Declare any assembly that you want included as a code-definition source for XAML as a dependent assembly in project settings. Weitere Informationen finden Sie unter Erstellen von Windows-Runtime-Komponenten in C# und Visual Basic.For more info, see Creating Windows Runtime components in C# and Visual Basic.

Wenn Sie benutzerdefinierte Typen von der Anwendungsdefinition oder Seitendefinition der Haupt-App referenzieren, stehen diese Typen ohne eine weitere Konfiguration abhängiger Assemblys zur Verfügung, der Codenamespace mit diesen Typen muss jedoch auch weiterhin zugeordnet werden.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. Eine häufige Konvention ist, das Präfix „local“ für den Standardcodenamespace jeder relevanten XAML-Seite zuzuordnen.A common convention is to map the prefix "local" for the default code namespace of any given XAML page. Diese Konvention wird oft in Startprojektvorlagen für XAML-Projekte aufgenommen.This convention is often included in starting project templates for XAML projects.

Angefügte EigenschaftenAttached properties

Wenn Sie auf angefügte Eigenschaften verweisen, muss der Besitzer-Typ-Teil der angefügten Eigenschaft entweder im standardmäßigen XAML-Namespace enthalten sein oder ein Präfix aufweisen.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. Das getrennte Hinzufügen von Präfixen zu Attributen und ihren Elementen kommt selten vor, in diesem Fall ist es jedoch manchmal erforderlich, insbesondere für eine benutzerdefinierte angefügte Eigenschaft.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. Weitere Informationen finden Sie unter Benutzerdefinierte angefügte Eigenschaften.For more info, see Custom attached properties.