x:Class (Directiva)
Configura la compilación de marcado XAML para unir clases parciales entre marcado y código subyacente. La clase parcial de código se define en un archivo de código independiente en un lenguaje de Common Language Specification (CLS), mientras que la clase parcial de marcado normalmente se crea mediante la generación de código durante la compilación XAML.
Uso de atributos XAML
<object x:Class="namespace.classname"...>
...
</object>
Valores XAML
Valor | Descripción |
---|---|
namespace |
Opcional. Especifica un espacio de nombres CLR que contiene la clase parcial identificada por classname . Si se especifica namespace , un punto (.) separa namespace y classname . Vea comentarios. |
classname |
Obligatorio. Especifica el nombre CLR de la clase parcial que conecta el XAML cargado y el código subyacente para ese XAML. |
Dependencias
x:Class
solo se puede especificar en el elemento raíz de una producción XAML.
x:Class
no es válido en cualquier objeto que tenga un elemento primario en la producción XAML. Para obtener más información, vea [MS-XAML] Sección 6.3.1.6.
Observaciones
El valor de namespace
puede contener puntos adicionales para organizar espacios de nombres relacionados en jerarquías de nombres, que es una técnica común en la programación de .NET. Solo el último punto de una cadena de valores de x:Class
se interpreta para separar namespace
y classname.
La clase que se usa como x:Class
no puede ser una clase anidada. No se permiten clases anidadas porque determinar el significado de puntos para x:Class
cadenas es ambiguo si se permiten clases anidadas.
En los modelos de programación existentes que usan x:Class
, x:Class
es opcional en el sentido de que es totalmente válido tener una página XAML que no tenga código subyacente. Sin embargo, esa funcionalidad interactúa con las acciones de compilación implementadas por marcos que usan XAML.
x:Class
funcionalidad también está influenciada por los roles que tienen varias clasificaciones de contenido especificado por XAML en un modelo de aplicación y en las acciones de compilación correspondientes. Si xaml declara valores de atributo de control de eventos o crea instancias de elementos personalizados en los que las clases de definición están en la clase de código subyacente, debes proporcionar la referencia de directiva de x:Class
(o x:Subclass) a la clase adecuada para el código subyacente.
El valor de la directiva x:Class
debe ser una cadena que especifique el nombre completo de una clase, pero sin información de ensamblado (equivalente al Type.FullName). En el caso de las aplicaciones sencillas, puede omitir la información del espacio de nombres CLR si el código subyacente también está estructurado de esa manera (la definición de código comienza en el nivel de clase).
El archivo de código subyacente de una definición de aplicación o página debe estar dentro de un archivo de código que se incluye como parte del proyecto que genera una aplicación compilada e implica la compilación de marcado. Debe seguir las reglas de nombre para las clases CLR. Para obtener más información, vea Framework Design Guidelines. De forma predeterminada, la clase de código subyacente debe ser public
; sin embargo, puede definirlo en un nivel de acceso diferente mediante el directiva x:ClassModifier.
Esta interpretación del atributo x:Class
solo se aplica a una implementación XAML basada en CLR, en particular a los servicios XAML de .NET. Otras implementaciones XAML que no se basan en CLR y que no usan servicios XAML de .NET pueden usar una fórmula de resolución diferente para conectar el marcado XAML y el código en tiempo de ejecución de respaldo. Para obtener más información sobre las interpretaciones más generales de x:Class
, vea [MS-XAML].
En cierto nivel de arquitectura, el significado de x:Class
no está definido en los servicios XAML de .NET. Esto se debe a que los servicios XAML de .NET no especifican el modelo de programación por el que se conectan el marcado XAML y el código de respaldo. Los usos adicionales de la directiva x:Class
pueden implementarse mediante marcos específicos que usan modelos de programación o modelos de aplicación para definir cómo conectar el marcado XAML y el código subyacente basado en CLR. Cada marco puede tener sus propias acciones de compilación que permiten algunos de los comportamientos o componentes específicos que deben incluirse en el entorno de compilación. Dentro de un marco, las acciones de compilación también pueden variar en función del lenguaje CLR específico que se usa para el código subyacente.
x:Class en el modelo de programación de WPF
En las aplicaciones de WPF y el modelo de aplicación de WPF, x:Class
se pueden declarar como un atributo para cualquier elemento que sea la raíz de un archivo XAML y se esté compilando (donde el XAML se incluye en un proyecto de aplicación WPF con Page
acción de compilación) o para la raíz Application en la definición de aplicación de una aplicación WPF compilada. Declarar x:Class
en un elemento distinto de una raíz de página o raíz de aplicación, o en un archivo XAML de WPF que no está compilado, provoca un error en tiempo de compilación en el compilador XAML de .NET Framework 3.0 y .NET Framework 3.5 WPF. Para obtener información sobre otros aspectos del control de x:Class
en WPF, vea Code-Behind y XAML en WPF.
x:Class for Windows Workflow Foundation
Para Windows Workflow Foundation, x:Class
asigna nombres a la clase de una actividad personalizada compuesta por completo en XAML o asigna un nombre a la clase parcial de la página XAML para un diseñador de actividad con código subyacente.
Notas de uso de Silverlight
x:Class
para Silverlight se documenta por separado. Para obtener más información, consulta características del lenguaje XAML (x:) (Silverlight).
Consulte también
- de directiva x:Subclass
- CLASES XAML y personalizadas para wpF
- de directiva x:ClassModifier
- tipos de migrados de WPF a System.Xaml
.NET Desktop feedback