Partilhar via


x:Diretiva de Classe

Configura a compilação de marcação XAML para unir classes parciais entre marcação e code-behind. A classe parcial de código é definida em um arquivo de código separado em uma linguagem CLS (Common Language Specification), enquanto a classe parcial de marcação é normalmente criada pela geração de código durante a compilação XAML.

Uso de atributos XAML

<object x:Class="namespace.classname"...>
  ...
</object>

Valores XAML

Valor Descrição
namespace Opcional. Especifica um namespace CLR que contém a classe parcial identificada por classname. Se namespace for especificado, um ponto (.) separa namespace e classname. Ver Observações.
classname Necessário. Especifica o nome CLR da classe parcial que conecta o XAML carregado e seu code-behind para esse XAML.

Dependências

x:Class só pode ser especificado no elemento raiz de uma produção XAML. x:Class é inválido em qualquer objeto que tenha um pai na produção XAML. Para obter mais informações, consulte [MS-XAML] Seção 6.3.1.6.

Comentários

O valor namespace pode conter pontos adicionais para organizar namespaces relacionados em hierarquias de nome, que é uma técnica comum na programação .NET. Somente o último ponto em uma cadeia de valores de x:Class é interpretado para separar namespace e classname. A classe usada como x:Class não pode ser uma classe aninhada. Classes aninhadas não são permitidas porque determinar o significado de pontos para cadeias de caracteres x:Class é ambíguo se as classes aninhadas forem permitidas.

Em modelos de programação existentes que usam x:Class, x:Class é opcional no sentido de que é totalmente válido ter uma página XAML que não tenha code-behind. No entanto, esse recurso interage com as ações de compilação conforme implementadas por estruturas que usam XAML. x:Class recurso também é influenciado pelas funções que várias classificações de conteúdo especificado por XAML têm em um modelo de aplicativo e nas ações de compilação correspondentes. Se seu XAML declara valores de atributo de manipulação de eventos ou instancia elementos personalizados onde as classes definidoras estão na classe code-behind, você precisa fornecer a referência de diretiva x:Class (ou x:Subclass) para a classe apropriada para code-behind.

O valor da diretiva x:Class deve ser uma cadeia de caracteres que especifica o nome totalmente qualificado de uma classe, mas sem qualquer informação de assembly (equivalente ao Type.FullName). Para aplicativos simples, você pode omitir informações de namespace CLR se o code-behind também estiver estruturado dessa maneira (a definição de código começa no nível da classe).

O arquivo code-behind para uma definição de página ou aplicativo deve estar dentro de um arquivo de código incluído como parte do projeto que produz um aplicativo compilado e envolve a compilação de marcação. Você deve seguir as regras de nome para classes CLR. Para obter mais informações, consulte Framework Design Guidelines. Por padrão, a classe code-behind deve ser public; no entanto, você pode defini-lo em um nível de acesso diferente usando o x:ClassModifier Directive.

Essa interpretação do atributo x:Class se aplica somente a uma implementação XAML baseada em CLR, em particular aos Serviços XAML .NET. Outras implementações XAML que não são baseadas em CLR e que não usam os Serviços XAML .NET podem usar uma fórmula de resolução diferente para conectar marcação XAML e fazer backup de código em tempo de execução. Para obter mais informações sobre interpretações mais gerais de x:Class, consulte [MS-XAML].

Em um determinado nível de arquitetura, o significado de x:Class é indefinido nos Serviços XAML do .NET. Isso ocorre porque os Serviços XAML do .NET não especificam o modelo de programação pelo qual a marcação XAML e o código de suporte estão conectados. Usos adicionais da diretiva x:Class podem ser implementados por estruturas específicas que usam modelos de programação ou modelos de aplicativo para definir como conectar marcação XAML e code-behind baseado em CLR. Cada estrutura pode ter suas próprias ações de compilação que permitem alguns dos comportamentos ou componentes específicos que devem ser incluídos no ambiente de compilação. Dentro de uma estrutura, as ações de compilação também podem variar dependendo da linguagem CLR específica que é usada para o code-behind.

x:Class no modelo de programação WPF

Em aplicativos WPF e no modelo de aplicativo WPF, x:Class pode ser declarado como um atributo para qualquer elemento que seja a raiz de um arquivo XAML e esteja sendo compilado (onde o XAML está incluído em um projeto de aplicativo WPF com Page ação de compilação) ou para a raiz Application na definição de aplicativo de um aplicativo WPF compilado. Declarar x:Class em um elemento diferente de uma raiz de página ou raiz de aplicativo, ou em um arquivo WPF XAML que não é compilado, causa um erro em tempo de compilação no compilador XAML WPF do .NET Framework 3.0 e do .NET Framework 3.5. Para obter informações sobre outros aspetos da manipulação de x:Class no WPF, consulte Code-Behind e XAML no WPF.

x:Class para Windows Workflow Foundation

Para o Windows Workflow Foundation, x:Class nomeia a classe de uma atividade personalizada composta inteiramente em XAML ou nomeia a classe parcial da página XAML para um designer de atividades com code-behind.

Notas de uso do Silverlight

x:Class do Silverlight é documentado separadamente. Para obter mais informações, consulte Recursos de linguagem do namespace XAML (x:) (Silverlight).

Ver também