Compartilhar via


x: subclasse diretiva

Modifica o comportamento de compilação de marcação XAML quando x:Class também é fornecida. Em vez de criar uma classe parcial que se baseia em x:Class, fornecida x:Class é criado como uma classe intermediária, e em seguida, sua classe derivada fornecido é esperado para ser baseado em x:Class.

XAML Attribute Usage

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

XAML Values

namespace

Optional. Especifica um namespace CLR que contém classname. If namespace is specified, a dot (.) separates namespace and classname.

classname

Required. Especifica o nome CLR da classe parcial que conecta o XAML carregado e o code-behind para esse XAML. Consulte comentários.

subclassNamespace

Optional. Pode ser diferente do namespace se cada namespace pode resolver o outro. Especifica um namespace CLR que contém subclassName. If subclassName is specified, a dot (.) separates subclassNamespace and subclassName.

subclassName

Required. Especifica o nome CLR da subclasse.

Dependencies

Diretiva X:Classtambém deve ser fornecida no mesmo objeto, e esse objeto deve ser o elemento raiz da produção XAML.

Comentários

x:Subclass usage is primarily intended for languages that do not support partial class declarations.

A classe usada como o x:Subclass não pode ser uma classe aninhada, e x:Subclass deve se referir ao objeto raiz, conforme explicado em "Dependências" seção.

Caso contrário, o significado conceitual de x:Subclass não está definida por um.Implementação de serviços de XAML do NET Framework. Isso ocorre porque.O comportamento de serviços do NET Framework XAML não especifica o modelo de programação geral pelo qual XAML marcação e fazendo o código estão conectados. Implementações ainda mais os conceitos relacionados ao x:Class e x:Subclass são realizadas por estruturas específicas, usam os modelos de aplicativo ou modelos de programação para definir como conectar-se a marcação XAML, compilada de marcação e código baseado em CLR-behind. Cada estrutura pode ter suas próprias ações de compilação que permitem a do comportamento ou componentes específicos que devem ser incluídos no ambiente de compilação. Dentro de uma estrutura, ações de compilação também podem variar com base no idioma específico do CLR que é usado para o code-behind.

Notas de uso do WPF

x:Subclasspode ser na raiz de uma página ou do Application raiz na definição de aplicativo, que já tem x:Class. Declarando x:Subclass em qualquer elemento diferente de uma raiz do aplicativo ou página, ou especificando onde não x:Class existe, causa um erro de tempo de compilação.

Creating derived classes that work correctly for the x:Subclass scenario is fairly complex. Talvez você precise examinar os arquivos intermediários (os arquivos de .g produzidos em pasta obj do seu projeto de compilação de marcação, com nomes que incorporam os nomes de arquivo. xaml). Esses arquivos intermediários podem ajudá-lo a determinar a origem de determinadas construções de programação nas classes parciais associadas no aplicativo compilado.

Os manipuladores de eventos na classe derivada devem ser internal override (Friend Overrides na Microsoft Visual Basic) para substituir os stubs para os manipuladores conforme criado na classe intermediária durante a compilação. Caso contrário, as implementações de classe derivada ocultar a implementação da classe intermediária (sombra) e os manipuladores de classe intermediária não são invocados.

Quando você definir ambos x:Class e x:Subclass, você não precisa fornecer qualquer implementação da classe que é referenciado pelo x:Class. Você precisará dar um nome por meio de x:Class de atributo para que o compilador tem algumas orientações para a classe que ele cria os arquivos intermediários (o compilador não selecione um nome padrão neste caso). Você pode dar a x:Class classe uma implementação; No entanto, esse não é o cenário típico para usar os x:Class e x:Subclass.

Consulte também

Referência

Diretiva X:Class

Conceitos

Classes de personalizadas para WPF e XAML