Diretiva x:Class
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 do atributo 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 (.) separará namespace e classname . Consulte Comentários. |
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.
Observações
O valor namespace
pode conter outros ponto para organizar namespaces relacionados em hierarquias de nome, que é uma técnica comum na programação do .NET. Somente o último ponto em uma cadeia de caracteres de valores 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
será ambíguo se 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, essa funcionalidade interage com as ações de build, conforme implementado por estruturas que usam XAML.
x:Class
funcionalidade também é influenciada 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 build correspondentes. Se o XAML declarar valores de atributo de manipulação de eventos ou instanciar elementos personalizados em que as classes de definição estão na classe code-behind, você precisará fornecer a referência de diretiva x:Class
(ou x:Subclass) à 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 à 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 de uma página ou definição de 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 a diretiva x:ClassModifier.
Essa interpretação do atributo x:Class
se aplica apenas a uma implementação XAML baseada em CLR, em particular aos Serviços XAML do .NET. Outras implementações XAML que não são baseadas em CLR e que não usam os Serviços XAML do .NET podem usar uma fórmula de resolução diferente para conectar a marcação XAML e fazer backup do 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 backup 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 a marcação XAML e o code-behind baseado em CLR. Cada estrutura pode ter suas próprias ações de build que habilitam alguns dos componentes específicos ou de comportamento que devem ser incluídos no ambiente de build. Em uma estrutura, as ações de build também podem variar dependendo da linguagem CLR específica usada para o code-behind.
x:Class no modelo de programação do 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 (em que o XAML está incluído em um projeto de aplicativo WPF com Page
ação de build) 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 do aplicativo, ou em um arquivo XAML do WPF que não é compilado, causa um erro de tempo de compilação no compilador XAML do .NET Framework 3.0 e do .NET Framework 3.5. Para obter informações sobre outros aspectos do tratamento 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 atividade com code-behind.
Notas de uso do Silverlight
x:Class
para Silverlight é documentado separadamente. Para obter mais informações, consulte namespace XAML (x:) Recursos de linguagem (Silverlight).
Consulte também
- da Diretiva x:Subclass de
- XAML e classes personalizadas para WPF
- diretiva x:ClassModifier
- tipos de migrados do WPF para o System.Xaml
.NET Desktop feedback