Espacios de nombres XAML
XAML usa el xmlns atributo XML para las declaraciones de espacio de nombres. Hay dos declaraciones de espacio de nombres XAML que siempre están dentro del elemento raíz de un archivo XAML. La primera define el espacio de nombres predeterminado:
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
El espacio de nombres predeterminado especifica que los elementos definidos en el archivo XAML sin prefijo hacen referencia a clases de interfaz de usuario de aplicaciones multiplataforma de .NET (.NET MAUI), como ContentPage, Labely Button.
La segunda declaración de espacio de nombres usa el x prefijo:
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
XAML usa prefijos para declarar espacios de nombres no predeterminados, con el prefijo que se usa al hacer referencia a tipos dentro del espacio de nombres. La x declaración de espacio de nombres especifica que los elementos definidos en XAML con un prefijo de x se usan para elementos y atributos que son intrínsecos a XAML (específicamente la especificación XAML de 2009).
En la tabla siguiente se describen las x construcciones admitidas por .NET MAUI:
| Construcción | Descripción |
|---|---|
x:Arguments |
Especifica argumentos de constructor para un constructor no predeterminado o para una declaración de objeto de método de fábrica. |
x:Class |
Especifica el espacio de nombres y el nombre de clase de una clase definida en XAML. El nombre de clase debe coincidir con el nombre de clase del archivo de código subyacente. Tenga en cuenta que esta construcción solo puede aparecer en el elemento raíz de un archivo XAML. |
x:DataType |
Especifica el tipo del objeto al que se enlazará el elemento XAML y a los elementos secundarios. |
x:FactoryMethod |
Especifica un método de fábrica que se puede usar para inicializar un objeto. |
x:FieldModifier |
Especifica el nivel de acceso para los campos generados para los elementos XAML con nombre. |
x:Key |
Especifica una clave única definida por el usuario para cada recurso de .ResourceDictionary El valor de la clave se usa para recuperar el recurso XAML y se usa normalmente como argumento para la StaticResource extensión de marcado. |
x:Name |
Especifica un nombre de objeto en tiempo de ejecución para el elemento XAML. La configuración x:Name es similar a declarar una variable en el código. |
x:TypeArguments |
Especifica los argumentos de tipo genérico para el constructor de un tipo genérico. |
Para obtener más información sobre el x:DataType atributo , vea Enlaces compilados. Para obtener más información sobre el x:FieldModifier atributo , vea Modificadores de campo. Para obtener más información sobre los x:Arguments atributos y x:FactoryMethod , vea Paso de argumentos. Para obtener más información sobre el x:TypeArguments atributo , vea Genéricos.
Nota:
Además de las construcciones enumeradas anteriormente, .NET MAUI también incluye extensiones de marcado que se pueden consumir mediante el prefijo del x espacio de nombres. Para obtener más información, consulta Consumir extensiones de marcado XAML.
En XAML, las declaraciones de espacio de nombres heredan del elemento primario al elemento secundario. Por lo tanto, al definir un espacio de nombres en el elemento raíz de un archivo XAML, todos los elementos de ese archivo heredan la declaración de espacio de nombres.
Declarar espacios de nombres para tipos
Se puede hacer referencia a los tipos en XAML declarando un espacio de nombres XAML con un prefijo, con la declaración de espacio de nombres que especifica el nombre del espacio de nombres de Common Language Runtime (CLR) y, opcionalmente, un nombre de ensamblado. Esto se logra mediante la definición de valores para las siguientes palabras clave dentro de la declaración de espacio de nombres:
clr-namespace:ousing:bien: el espacio de nombres CLR declarado en el ensamblado que contiene los tipos que se van a exponer como elementos XAML. Esta palabra clave es necesaria.assembly=: ensamblado que contiene el espacio de nombres CLR al que se hace referencia. Este valor es el nombre del ensamblado, sin la extensión de archivo. La ruta de acceso al ensamblado debe establecerse como una referencia en el proyecto que contiene el archivo XAML que hará referencia al ensamblado. Esta palabra clave se puede omitir si el valor clr-namespace está dentro del mismo ensamblado que el código de la aplicación que hace referencia a los tipos.
Nota
El carácter que separa el clr-namespace token o using de su valor es de dos puntos, mientras que el carácter que separa el assembly token de su valor es un signo igual. El carácter que se va a usar entre los dos tokens es un punto y coma.
En el ejemplo de código siguiente se muestra una declaración de espacio de nombres XAML:
<ContentPage ... xmlns:local="clr-namespace:MyMauiApp">
...
</ContentPage>
Como alternativa, esto se puede escribir como:
<ContentPage ... xmlns:local="using:MyMauiApp">
...
</ContentPage>
El local prefijo es una convención que se usa para indicar que los tipos del espacio de nombres son locales para la aplicación. Como alternativa, si los tipos están en un ensamblado diferente, el nombre del ensamblado también debe definirse en la declaración de espacio de nombres:
<ContentPage ... xmlns:controls="clr-namespace:Controls;assembly=MyControlLibrary" ...>
...
</ContentPage>
A continuación, se especifica el prefijo de espacio de nombres al declarar una instancia de un tipo de un espacio de nombres importado:
<controls:Expander IsExpanded="True">
...
</controls:Expander>
Para obtener información sobre cómo definir un esquema de espacio de nombres personalizado, vea Esquemas de espacios de nombres personalizados.