Espacios de nombres XAML y asignación de espacios de nombresXAML namespaces and namespace mapping

En este tema se explican las asignaciones de espacios de nombres XML/XAML (xmlns) tal y como se encuentran en el elemento raíz de la mayoría de los archivos XAML.This topic explains the XML/XAML namespace (xmlns) mappings as found in the root element of most XAML files. También describe cómo producir asignaciones similares para tipos y ensamblados personalizados.It also describes how to produce similar mappings for custom types and assemblies.

Cómo se relacionan los espacios de nombres XAML con la definición del código y las bibliotecas de tiposHow XAML namespaces relate to code definition and type libraries

Tanto en su propósito general como en su aplicación a la programación de aplicaciones de Windows en tiempo de ejecución, el lenguaje XAML sirve para declarar objetos, las propiedades de dichos objetos y las relaciones entre objetos y propiedades expresadas como jerarquías.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. Los objetos que declares en XAML están respaldados por bibliotecas de tipos u otras representaciones que se definen con otras técnicas y lenguajes de programación.The objects you declare in XAML are backed by type libraries or other representations that are defined by other programming techniques and languages. Estas bibliotecas pueden ser:These libraries might be:

  • El conjunto integrado de objetos de Windows en tiempo de ejecución.The built-in set of objects for the Windows Runtime. Esto es un conjunto fijo de objetos, y el acceso a estos objetos desde XAML usa lógica de activación y asignación de tipos interna.This is a fixed set of objects, and accessing these objects from XAML uses internal type-mapping and activation logic.
  • Bibliotecas distribuidas, proporcionadas por Microsoft u otros proveedores.Distributed libraries that are provided either by Microsoft or by third parties.
  • Bibliotecas que representan la definición de un control de otro proveedor que tu aplicación incorpora y tu paquete redistribuye.Libraries that represent the definition of a third-party control that your app incorporates and your package redistributes.
  • Tu propia biblioteca, que es parte de tu proyecto y que guarda todas tus definiciones de código de usuario o parte de ellas.Your own library, which is part of your project and which holds some or all of your user code definitions.

La información del tipo de respaldo se asocia a definiciones de espacios de nombres XAML determinadas.Backing type info is associated with particular XAML namespace definitions. Los marcos de XAML, como Windows Runtime, pueden agregar varios ensamblados y espacios de nombres de código para asignarse a un único espacio de nombres XAML.XAML frameworks such as the Windows Runtime can aggregate multiple assemblies and multiple code namespaces to map to a single XAML namespace. Esto nos da el concepto de vocabulario XAML, que abarca un marco o tecnología de programación mayor.This enables the concept of a XAML vocabulary that covers a larger programming framework or technology. Un vocabulario XAML puede ser bastante amplio; por ejemplo, la mayoría del código XAML documentado para aplicaciones de Windows Runtime de esta referencia constituye un solo vocabulario 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. Un vocabulario XAML también se puede ampliar; para ello, agrega tipos a las definiciones de código de respaldo asegurándote de incluir los tipos en espacios de nombres de código que ya se usan como orígenes de espacio de nombres asignados del vocabulario 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.

Un procesador XAML puede consultar los tipos y los miembros en los ensamblados de respaldo asociados a ese espacio de nombres XAML cuando cree una representación de objetos en tiempo de ejecución.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. Este es el motivo por el que XAML es útil como una manera de formalizar e intercambiar definiciones de comportamiento de construcción de objetos y por qué se usa XAML como una técnica de definición de la interfaz de usuario para una aplicación para UWP.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.

Espacios de nombres XAML en un uso de marcado XAML típicoXAML namespaces in typical XAML markup usage

Un archivo XAML casi siempre declara un espacio de nombres XAML predeterminado en su elemento raíz.A XAML file almost always declares a default XAML namespace in its root element. El espacio de nombres XAML predeterminado define qué elementos se pueden declarar sin cualificarlos con un prefijo.The default XAML namespace defines which elements you can declare without qualifying them by a prefix. Por ejemplo, si declaras un elemento <Balloon />, un analizador XAML esperará que exista un elemento Balloon y que sea válido en el espacio de nombres XAML predeterminado.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. Por el contrario, si Balloon no es el espacio de nombres XAML predeterminado definido, debes cualificar ese nombre de elemento con un prefijo como, por ejemplo, <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 />. El prefijo indica que el elemento existe en un espacio de nombres XAML que no es el predeterminado, y debes asignar un espacio de nombres XAML al prefijo party antes de poder usar este elemento.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. Los espacios de nombres XAML se aplican al elemento específico en el que se declaran, así como a cualquier elemento que esté contenido en ese elemento en la estructura 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. Por este motivo, los espacios de nombres XAML casi siempre se declaran en elementos raíz de un archivo XAML para aprovechar las ventajas de la herencia.For this reason, XAML namespaces are almost always declared on root elements of a XAML file to take advantage of this inheritance.

Declaraciones de espacio de nombres predeterminado y del lenguaje XAMLThe default and XAML language XAML namespace declarations

En el elemento raíz de la mayoría de archivos XAML, hay dos declaraciones xmlns.Within the root element of most XAML files, there are two xmlns declarations. La primera asigna un espacio de nombres XAML como predeterminado: 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"

Este es el mismo identificador de espacio de nombres XAML que se usaba en varias tecnologías de Microsoft anteriores que también usan XAML como formato de marcado para la definición de la interfaz de usuario.This is the same XAML namespace identifier used in several predecessor Microsoft technologies that also use XAML as a UI definition markup format. El uso del mismo identificador es deliberado y resulta útil cuando se migra una interfaz de usuario previamente definida a una aplicación de Windows en tiempo de ejecución con C++, C# o Visual Basic.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.

La segunda declaración asigna un espacio de nombres XAML diferente para los elementos del lenguaje definidos por XAML, y le asigna (normalmente) el prefijo "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"

Este valor de xmlns y el prefijo x: al que está asignado también son idénticos a las definiciones que se usaban en varias tecnologías anteriores de Microsoft que usan XAML.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.

La relación entre estas declaraciones es que XAML es una definición de lenguaje, y Windows Runtime es una implementación que usa XAML como lenguaje y define un vocabulario específico a cuyos tipos se hace referencia en 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.

El lenguaje XAML especifica determinados elementos de lenguaje, cada uno de los cuales debe ser accesible mediante implementaciones del procesador XAML que trabajan con el espacio de nombres XAML.The XAML language specifies certain language elements, and each of these should be accessible through XAML processor implementations working against the XAML namespace. Las plantillas de proyecto, el código de muestra y la documentación de las características del lenguaje siguen la convención por la que se asigna "x:" al espacio de nombres XAML del lenguaje XAML.The "x:" mapping convention for the XAML language XAML namespace is followed by project templates, sample code, and the documentation for language features. El espacio de nombres del lenguaje XAML define varias características de uso común, incluso para aplicaciones básicas de Windows en tiempo de ejecución con C++, C# o Visual Basic.The XAML language namespace defines several commonly used features that are necessary even for basic Windows Runtime apps using C++, C#, or Visual Basic. Por ejemplo, para unir un código subyacente con un archivo XAML mediante una clase parcial, debes asignar un nombre a esa clase como el atributo x:Class en el elemento raíz del archivo XAML correspondiente.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. O bien, cualquier elemento que se defina en una página XAML como un recurso con clave de un ResourceDictionary y referencias a recursos XAML debe tener establecido el atributo x:Key en el elemento de objeto en cuestión.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.

Espacios de nombres de código que se asignan al espacio de nombres XAML predeterminadoCode namespaces that map to the default XAML namespace

A continuación se muestra una lista de espacios de nombres de código que están asignados actualmente al espacio de nombres XAML predeterminado.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

Otros espacios de nombres XAMLOther XAML namespaces

Además del espacio de nombres predeterminado y del espacio de nombres XAML del lenguaje XAML "x:", puedes ver otros espacios de nombres XAML asignados en el código XAML predeterminado inicial para aplicaciones generadas por Microsoft Visual Studio.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)

El espacio de nombres XAML "d:" se usa para la compatibilidad con diseñadores, concretamente para la compatibilidad con diseñadores en las superficies de diseño de XAML de Microsoft Visual Studio.The "d:" XAML namespace is intended for designer support, specifically designer support in the XAML design surfaces of Microsoft Visual Studio. El espacio de nombres XAML "d:" permite el uso de atributos de diseñador o en tiempo de diseño en elementos XAML.The" d:" XAML namespace enables designer or design-time attributes on XAML elements. Estos atributos de diseñador solo afectan a los aspectos de diseño relativos al comportamiento de XAML.These designer attributes affect only the design aspects of how XAML behaves. Los atributos de diseñador se ignoran cuando el analizador XAML de Windows en tiempo de ejecución carga el mismo código XAML al ejecutarse una aplicación.The designer attributes are ignored when the same XAML is loaded by the Windows Runtime XAML parser when an app runs. Por lo general, los atributos de diseñador son válidos en cualquier elemento XAML pero, en la práctica, hay determinados escenarios en los que resulta apropiado aplicar uno mismo un atributo de diseñador.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. En particular, muchos de los atributos de diseñador están destinados a proporcionar una mejor experiencia de interacción con contextos de datos y orígenes de datos mientras desarrollas código XAML y otro código que use enlace de datos.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.

  • Atributos d:DesignHeight y d:DesignWidth: a veces, estos atributos se aplican a la raíz de un archivo XAML que Visual Studio u otra superficie de diseñador XAML crean automáticamente.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. Por ejemplo, estos atributos se establecen en la raíz de UserControl del XAML que se crea al agregar un nuevo UserControl al proyecto de la aplicación.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. Estos atributos facilitan el diseño de la composición del contenido XAML, de forma que se pueden anticipar las limitaciones de contenido que podrían existir al usar el contenido XAML en una instancia de control o en otra parte de una página de interfaz de usuario mayor.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.

Nota:    Si va a migrar XAML desde Microsoft Silverlight, es posible que tenga estos atributos en los elementos raíz que representan una página de interfaz de usuario completa.Note  If you are migrating XAML from Microsoft Silverlight you might have these attributes on root elements that represent an entire UI page. En ese caso, es posible que quieras quitar los atributos.You might want to remove the attributes in this case. Otras características de los diseñadores de XAML, como el simulador, son probablemente más útiles para crear diseños de página que controlen la escala y muestren los estados mejor que en un diseño de página de tamaño fijo con d:DesignHeight y 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.

  • Atributo d:DataContext: puedes establecer este atributo en una raíz de página o en un control para invalidar cualquier DataContext explícito o heredado que tenga el objeto.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.
  • Atributo d:DesignSource: especifica un origen de datos en tiempo de diseño para un elemento CollectionViewSource, lo que invalida la propiedad Source.d:DesignSource attribute: Specifies a design-time data source for a CollectionViewSource, overriding Source.
  • Extensiones de marcado d:DesignInstance y d:DesignData: estas extensiones de marcado se usan para proporcionar recursos de datos en tiempo de diseño para d:DataContext o 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. En este tema no explicaremos en detalle cómo usar los recursos de datos en tiempo de diseño.We won't fully document how to use design-time data resources here. Para obtener más información, consulta Atributos en tiempo de diseño.For more info, see Design-Time Attributes. Para obtener algunos ejemplos de uso, consulta Datos de muestra sobre la superficie de diseño y para la creación de prototipos.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:" indica y admite un modo de compatibilidad de marcado para leer XAML." mc:" indicates and supports a markup compatibility mode for reading XAML. Normalmente, el prefijo "d:" se asocia al atributo mc:Ignorable.Typically, the "d:" prefix is associated with the attribute mc:Ignorable. Esta técnica permite a los analizadores XAML en tiempo de ejecución omitir los atributos de diseño en "d:".This technique enables run-time XAML parsers to ignore the design attributes in "d:".

local: y common:local: and common:

"local:" es un prefijo que se suele asignar en las páginas XAML de un proyecto de aplicación para UWP con plantilla."local:" is a prefix that is often mapped for you within the XAML pages for a templated UWP app project. Se asigna para que haga referencia al mismo espacio de nombres que se ha creado para contener el atributo x:Class y el código de todos los archivos XAML, incluido 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. Mientras definas cualquier clase personalizada que quieras usar en XAML en este mismo espacio de nombres, puedes usar el prefijo local: para referirte a tus tipos personalizados en 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. Un prefijo relacionado que procede de un proyecto de aplicación para UWP con plantilla es común:.A related prefix that comes from a templated UWP app project is common:. Este prefijo hace referencia a un espacio de nombres "Common" anidado que contiene clases de utilidad como conversores y comandos; encontrarás las definiciones en la carpeta Common de la vista Explorador de soluciones.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:

No debe usarse.Do not use. "vsm:" es un prefijo que a veces se ve en plantillas XAML más antiguas importadas de otras tecnologías de Microsoft."vsm:" is a prefix that is sometimes seen in older XAML templates imported from other Microsoft technologies. El espacio de nombres en principio solucionaba un problema de utillaje de los espacios de nombres heredados.The namespace originally addressed a legacy namespace tooling issue. Deberías eliminar las definiciones de espacios de nombres XAML de "vsm:" en el código XAML que uses para Windows Runtime, y cambiar el uso de prefijos de VisualState, VisualStateGroup y otros objetos relacionados para usar en su lugar el espacio de nombres XAML predeterminado.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. Para obtener más información sobre la migración de XAML, consulta Migrar código XAML de WPF o Silverlight a una aplicación de Windows en tiempo de ejecución.For more info on XAML migration, see Migrating Silverlight or WPF XAML/code to a Windows Runtime app.

Asignación de tipos personalizados a espacios de nombres XAML y prefijosMapping custom types to XAML namespaces and prefixes

Puedes asignar un espacio de nombres XAML con el fin de usar XAML para acceder a tus propios tipos personalizados.You can map a XAML namespace so that you can use XAML to access your own custom types. En otras palabras, asignas un espacio de nombres de código tal y como existe en una representación de código que define el tipo personalizado, y le asignas un espacio de nombres XAML con un prefijo de uso.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. Los tipos personalizados para XAML pueden definirse con un lenguaje de Microsoft .NET (C# o Microsoft Visual Basic) o en C++.Custom types for XAML can be defined either in a Microsoft .NET language (C# or Microsoft Visual Basic) or in C++. La asignación se realiza mediante la definición de un prefijo xmlns.The mapping is made by defining an xmlns prefix. Por ejemplo, xmlns:myTypes define un nuevo espacio de nombres XAML al que se accede incluyendo prefijos en todos los usos con el token myTypes:.For example, xmlns:myTypes defines a new XAML namespace that is accessed by prefixing all usages with the token myTypes:.

Una definición de xmlns incluye un valor, así como el nombre del prefijo.An xmlns definition includes a value as well as the prefix naming. El valor es una cadena entrecomillada y seguida del signo igual.The value is a string that goes inside quotation marks, following an equal sign. Una convención habitual en XML es asociar el espacio de nombres XML con un Identificador uniforme de recursos (URI), de manera que hay una convención para la exclusividad y la identificación.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. Esta convención también se observa en el espacio de nombres XAML predeterminado y en el espacio de nombres XAML del lenguaje XAML, así como en algunos espacios de nombres XAML de uso menos frecuente usados por el lenguaje XAML de Windows en tiempo de ejecución.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. Sin embargo, en el caso de un espacio de nombres XAML que asigna tipos personalizados, en lugar de especificar un URI, la definición del prefijo comienza por el token "using:".But for a XAML namespace that maps custom types, instead of specifying a URI, you begin the prefix definition with the token "using:". Después del token "using:", se asigna un nombre al espacio de nombres de código.Following the "using:" token, you then name the code namespace.

Por ejemplo, para asignar un prefijo "custom1" que permita hacer referencia a un espacio de nombres "CustomClasses" y usar las clases de dicho espacio de nombres o ensamblado como elementos de objeto en XAML, la página XAML debe incluir la siguiente asignación en el elemento raíz: 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"

No es necesario asignar las clases parciales del mismo ámbito de página.Partial classes of the same page scope do not need to be mapped. Por ejemplo, no necesitas prefijos para hacer referencia a los controladores de eventos que has definido para controlar los eventos de la definición de la interfaz de usuario XAML de tu página.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. Además, muchas de las páginas XAML iniciales precedentes de proyectos generados en Visual Studio para una aplicación de Windows Runtime con C++, C# o Visual Basic ya asignan un prefijo "local:" que hace referencia al espacio de nombres predeterminado especificado por el proyecto y el espacio de nombres usado por las definiciones de clases parciales.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.

Reglas del lenguaje CLRCLR language rules

Si escribes tu código de respaldo en un lenguaje de .NET (C# o Microsoft Visual Basic), es posible que estés usando convenciones que incluyen un punto (".") como parte del nombre de los espacios de nombres para crear una jerarquía conceptual de espacios de nombres de código.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. Si tu definición de espacio de nombres contiene un punto, este debe formar parte del valor que especifiques después del token "using:".If your namespace definition contains a dot, the dot should be part of the value you specify after the "using:" token.

Si el archivo de código subyacente o el archivo de definiciones de código es un archivo de C++, existen ciertas convenciones que aún siguen el formato del lenguaje Common Language Runtime (CLR) para que no haya diferencias en la sintaxis de XAML.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. Si declaras espacios de nombres anidados en C++, el separador entre las sucesivas cadenas de espacios de nombres anidados debe ser "." en lugar de "::" cuando especifiques el valor que sigue al token "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.

No uses tipos anidados (como es el caso de anidar una enumeración en una clase) cuando definas el código para usarlo con XAML.Don't use nested types (such as nesting an enumeration within a class) when you define your code for use with XAML. Los tipos anidados no se pueden evaluar.Nested types can't be evaluated. El analizador de XAML no tiene forma de distinguir que un punto forma parte del nombre de un tipo anidado, y no del nombre del espacio de nombres.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.

Tipos y ensamblados personalizadosCustom types and assemblies

En la asignación no se especifica el nombre del ensamblado que define los tipos de respaldo de un espacio de nombres XAML.The name of the assembly that defines the backing types for a XAML namespace is not specified in the mapping. La lógica por la que los ensamblados están disponibles se controla en el nivel de definición de la aplicación y forma parte de los principios básicos de implementación y seguridad de una aplicación.The logic for which assemblies are available is controlled at the app-definition level and is part of basic app deployment and security principles. Declara los ensamblados que quieras incluir como origen de definiciones de código para XAML como ensamblados dependientes en la configuración del proyecto.Declare any assembly that you want included as a code-definition source for XAML as a dependent assembly in project settings. Para obtener más información, consulta Creación de componentes de Windows en tiempo de ejecución en C# y Visual Basic.For more info, see Creating Windows Runtime components in C# and Visual Basic.

Si haces referencia a tipos personalizados en la definición de aplicación o en las definiciones de página de la aplicación principal, esos tipos están disponibles sin necesidad de otra configuración de ensamblado dependiente, aunque aún debes asignar el espacio de nombres de código que contiene esos tipos.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. Una convención habitual es asignar el prefijo "local" al espacio de nombres de código predeterminado de cualquier página XAML dada.A common convention is to map the prefix "local" for the default code namespace of any given XAML page. Esta convención se suele incluir en las plantillas de proyecto de inicio para proyectos de XAML.This convention is often included in starting project templates for XAML projects.

Propiedades adjuntasAttached properties

Si haces referencia a propiedades adjuntas, el fragmento del tipo de propietario del nombre de la propiedad adjunta debe estar en el espacio de nombres XAML predeterminado, o bien incluir un prefijo.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. Incluir prefijos en atributos con independencia de sus elementos no es muy habitual, pero en este caso a veces es necesario, sobre todo si se trata de una propiedad adjunta personalizada.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. Para obtener más información, consulta Propiedades adjuntas personalizadas.For more info, see Custom attached properties.