Compartir a través de


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