FrameworkElement.Name Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define o nome identificativo do elemento. O nome fornece uma referência para que o code-behind, como o código do handler de eventos, possa referir-se a um elemento de marcação após este ser construído durante o processamento por um processador XAML.
public:
property System::String ^ Name { System::String ^ get(); void set(System::String ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)]
public string Name { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)>]
member this.Name : string with get, set
Public Property Name As String
Valor de Propriedade
O nome do elemento. O padrão é uma cadeia de caracteres vazia.
Implementações
- Atributos
Exemplos
O exemplo seguinte define a Name propriedade em código, e depois regista o nome no recém-criado NameScope ao chamar RegisterName. A técnica aqui ilustrada é um requisito para animar com storyboards, porque os storyboards requerem direcionamento pelo Name, e não podem ser direcionados por referência a objetos.
//
// Create a Rectangle
//
Rectangle myRectangle = new Rectangle();
myRectangle.Width = 200;
myRectangle.Height = 200;
myRectangle.Name = "myRectangle";
this.RegisterName(myRectangle.Name, myRectangle);
'
' Create a Rectangle
'
Dim myRectangle As New Rectangle()
myRectangle.Width = 200
myRectangle.Height = 200
myRectangle.Name = "myRectangle"
Me.RegisterName(myRectangle.Name, myRectangle)
Observações
O uso mais comum desta propriedade é especificar um nome de elemento XAML como um atributo na marcação.
Esta propriedade fornece essencialmente uma WPF propriedade de conveniência ao nível do framework para definir a Diretiva XAML x:Nome.
Os nomes devem ser únicos dentro de um namescope. Para mais informações, consulte WPF XAML Namescopes.
Obter um Name se estás a criar elementos em código não é comum. Se já tiver a referência apropriada no código, pode simplesmente chamar métodos e propriedades na referência do elemento e geralmente não precisará do Name. Uma exceção a isto é se a Name string tiver algum significado sobrecarregado, por exemplo, se for útil mostrar esse nome na interface. Definir a Name from code-behind se o original Name foi definido a partir da marcação também não é recomendado, e alterar a propriedade após carregar o XAML não alterará a referência original do objeto. As referências aos objetos são criadas apenas quando os namescopes subjacentes são explicitamente criados durante a análise sintática. Deve ligar RegisterName especificamente para fazer uma alteração eficaz na Name propriedade de um elemento já carregado.
Um caso notável em que a definição Name a partir do código é importante é ao registar nomes para elementos contra os quais os storyboards vão correr, para que possam ser referenciados em tempo de execução. Antes de poderes registar um nome, talvez também precises de instanciar e atribuir uma NameScope instância. Veja a secção de Exemplos, ou Visão Geral dos Storyboards.
Definir Name a partir do código tem aplicações limitadas, mas obter um elemento por Name é mais comum. Um cenário particular é se a sua aplicação suportar um modelo de navegação onde as páginas recarregam na aplicação, e o código de tempo de execução não está necessariamente definido como code-behind para essa página. O método FindNameutilitário , que está disponível a partir de qualquer FrameworkElement, pode encontrar qualquer elemento por Name na árvore lógica desse elemento, pesquisando a árvore recursivamente conforme necessário. Ou pode usar o FindLogicalNode método estático de LogicalTreeHelper, que também toma uma Name sequência como argumento.
Os elementos raiz tipicamente usados (Windowpor exemplo Page ) implementam a interface INameScope. As implementações desta interface devem garantir que os nomes sejam inequívocos dentro do seu âmbito. Os elementos raiz que definem esta interface também definem os limites de comportamento do namescope para todas as APIs relacionadas.
A Name propriedade serve também como identificador para outros processos. Por exemplo, o modelo de automação WPF usará Name como AutomationId para clientes e fornecedores.
Os valores da cadeia usados para Name têm algumas restrições, conforme imposto pela diretiva subjacente x:Name definida pela especificação XAML. Mais notavelmente, deve Name começar com uma letra ou o carácter de sublinhado (_), e deve conter apenas letras, dígitos ou sublinhados. Para mais informações, consulte WPF XAML Namescopes.
Name é uma das poucas propriedades de dependência que não pode ser animada (IsAnimationProhibited está true nos metadados), porque o próprio nome é vital para direcionar uma animação. A ligação de dados a Name é tecnicamente possível, mas é um cenário extremamente raro porque uma ligação Name de dados não pode servir o principal propósito pretendido da propriedade: fornecer um ponto de ligação de identificador para code-behind.
Informação de Propriedade de Dependência
| Iteme | Value |
|---|---|
| Campo identificador | NameProperty |
Propriedades dos metadados definidas como true |
IsAnimationProhibited |