Share via


x:Name Attribute

Identifica elementos-objeto unicamente para fins de acesso ao elemento instanciado a partir de code-behind ou código geral. Quando aplicado a um modelo de programação de respaldo, x:Name pode ser considerado equivalente à variável que contém uma referência de objeto, como retornado por um construtor.

Uso de atributos XAML

<object x:Name="XAMLNameValue".../>

Valores de XAML

XAMLNameValue

Uma string que está de acordo com as restrições da Gramática XamlName.

Comentários

Sob a configuração da compilação padrão para um WPF projeto de aplicativo que usa XAML, classes parcial e code-behind, especificado x:Name torna-se o nome de um campo que é criado na Base de código quando XAML é processada, e esse campo contém uma referência ao objeto.

Por padrão, o campo criado é interno. Você pode alterar o acesso ao campo especificando o atributo x:FieldModifier.

Para um aplicativo que usa os destinos Microsoft Visual Basic .NET e inclui arquivos XAML, uma propriedade de referência separada é criada durante a compilação que adiciona a palavra-chave WithEvents para todos os elementos que têm um x:Name, para oferecer suporte à sintaxe Handles para representantes de tratadores de eventos. Esta propriedade é sempre pública. Para obter detalhes, consulte:Visual Basic and WPF Event Handling.

x:Name deve ser exclusivo dentro de um escopo de nome. No mais comuns XAML casos, namescope primária é definida por esses elementos contidos em um único XAML página. Namescopes discretas adicionais são definidos por qualquer modelo também definido nessa página. Para mais informações sobre considerações relativas a namescopes, consulte Namescopes WPF.

x:Name é usado por um processador XAML para registrar um nome em um namescope, mesmo em casos onde a página não está compilada (por exemplo, XAML solto). Isso ocorre porque o x:Name é potencialmente necessário para a vinculação ElementName. Para obter detalhes, consulte:Revisão de Associação de Dados.

x:Name não pode ser aplicado em determinados escopos em WPF programação. Para instância, itens em um ResourceDictionary não pode ter nomes, porque ResourceDictionary tem um comportamento especial de definição próprio sistema autônomo um XAML namescope mas retornando não implementado para a chave INameScope APIs.

Regras para permittance de x:Name Assim sistema autônomo a exclusividade de escopo são definidos pela base Windows Presentation Foundation (WPF) implementação do estrutura que divide a vários elementos de marcação em separado NameScope intervalos, sistema autônomo dicionários de recurso, a árvore lógica criada pelo nível da página XAML, modelos, etc..

Alguns WPF aplicativos em nível de estrutura podem ser que consiga evitar qualquer uso da x:Name atributo, porque o Name propriedade de dependência sistema autônomo especificado dentro de WPF namespace para várias das classes base importantes, sistema autônomo FrameworkElement/FrameworkContentElement de acordo com essa mesma finalidade. Ainda há algumas situações comuns entre XAML e framework onde acesso do código a um elemento sem nenhuma propriedade Name é necessário, especialmente em determinadas classes de apoio a animação e storyboard. Por exemplo, você deve especificar x:Name em cronogramas em transformações criadas no XAML, se você pretende fazer referência a eles a partir do código.

If Name está disponível sistema autônomo uma propriedade da classe Name e x:Name podem ser usados de maneira intercambiável sistema autônomo atributos, mas um erro irá resultar se ambos são especificados no mesmo elemento.

Para elementos personalizados, a propriedade (pode ser uma propriedade CLR ou uma propriedade de dependência) que mapeia para x:Name em qualquer dado objeto pode ser estabelecida ou alterada designando essa propriedade com o RuntimeNamePropertyAttribute no código de declaração da propriedade.

Name pode ser conjunto usando XAML atributo sintaxe e no código usando SetValue; Observe no entanto esse seletiva conjunto o Name propriedade no código não cria a referência de campo representativo dentro do namescope em algumas circunstâncias. Em vez de tentar conjunto Name no código, use NameScope métodos do código, contra namescope apropriado.

Name também pode ser definida usando XAML sintaxe de elemento de propriedade com texto interno, mas é incomum. x:Name não pode ser definido com sintaxe de elemento-propriedade XAML, ou em código usando SetValue; ele só pode ser definido usando a sintaxe de atributo em elementos.

Consulte também

Conceitos

Árvores em WPF

Referência

Name

Name