Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Proprietà FrameworkElement.Name

 

Data di pubblicazione: ottobre 2016

Ottiene o imposta il nome identificativo dell'elemento. Il nome fornisce un riferimento, in modo che il code-behind, ad esempio il codice di un gestore eventi, possa fare riferimento a un elemento di markup dopo la sua creazione durante l'elaborazione tramite un processore di XAML.

Spazio dei nomi:   System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)

[LocalizabilityAttribute(LocalizationCategory.NeverLocalize)]
public string Name { get; set; }

Valore proprietà

Type: System.String

Nome dell'elemento. Il valore predefinito è una stringa vuota.

L'utilizzo più comune di questa proprietà consiste nello specificare un XAML nome dell'elemento come un attributo nel markup.

Questa proprietà è essenzialmente fornisce una proprietà di praticità a livello di framework WPF per impostare il XAMLx:Name Directive

I nomi devono essere univoci all'interno di un ambito dei nomi. Per ulteriori informazioni, vedere NameScope XAML WPF.

Recupero di un Name se si siano creando elementi nel codice non è comune. Se si dispone già del riferimento appropriato nel codice, è possibile chiamare solo metodi e proprietà per l'elemento di riferimento e non sarà in genere necessario il Name. È un'eccezione se il Name stringa ha un significato aggiuntivo, ad esempio se è utile visualizzare il nome in Interfaccia utente. Impostando un Name dal code-behind se originale Name è stato impostato dal markup non è inoltre consigliabile e la modifica della proprietà dopo il caricamento di XAML non modificherà il riferimento all'oggetto originale. I riferimenti agli oggetti vengono creati solo quando i NameScope sottostanti sono creati in modo esplicito durante l'analisi. È necessario chiamare espressamente RegisterName per rendere effettiva una modifica per la Name proprietà di un elemento già caricato.

Un principale è il caso in cui l'impostazione Name dal codice, è importante la registrazione dei nomi per gli elementi che lo storyboard verrà eseguita, in modo che è possibile farvi riferimento in fase di esecuzione. Prima di poter registrare un nome, potrebbe essere inoltre necessario creare e assegnare un NameScope istanza. Vedere la sezione di esempio, o Storyboards Overview.

Impostazione Name dal codice ha limitato di applicazioni, ma ottenere un elemento da Name è più comune. Un particolare scenario è un'applicazione che supporta un modello di navigazione in cui le pagine vengono ricaricate all'applicazione e il codice in fase di esecuzione non è necessariamente code-behind definito per la pagina. Il metodo di utilità FindName, disponibile da qualsiasi FrameworkElement, consente di trovare qualsiasi elemento da Name nell'albero logico per questo elemento, la ricerca in modo ricorsivo la struttura ad albero in base alle esigenze. Oppure è possibile utilizzare il FindLogicalNode metodo statico di LogicalTreeHelper, che accetta inoltre un Name stringa come argomento.

Gli elementi radice utilizzati in genere (Window, Page ad esempio) implementa l'interfaccia INameScope. Le implementazioni di questa interfaccia devono imporre che i nomi siano non ambigue nel relativo ambito. Gli elementi radice che definiscono questa interfaccia anche definiscono i limiti di comportamento namescope per tutte le relative API.

Il Name proprietà funge anche da un identificatore per altri processi. Ad esempio, il WPF verrà utilizzata dal modello di automazione Name come AutomationId per client e provider.

I valori stringa utilizzati per Name presentano alcune restrizioni, come imposto dal sottostante x:Name Directive definito per il XAML specifica. In particolare, un Name deve iniziare con una lettera o il carattere di sottolineatura (_) e deve contenere solo lettere, cifre o caratteri di sottolineatura. Per ulteriori informazioni, vedere NameScope XAML WPF.

Name è una delle poche proprietà di dipendenza che non possono essere animate (IsAnimationProhibited è true nei metadati), in quanto il nome stesso è vitale per utilizzare un'animazione. Associazione dati un Name è tecnicamente possibile, ma è uno scenario molto comune, poiché un controllo con associazione a dati Name non può essere utilizzato lo scopo principale della proprietà: per fornire un punto di connessione dell'identificatore per il code-behind.

Campo dell'identificatore

NameProperty

Impostare le proprietà dei metadatitrue

IsAnimationProhibited

L'esempio seguente imposta il Name proprietà nel codice, quindi registra il nome nell'oggetto appena creato NameScope chiamando RegisterName. La tecnica illustrata di seguito è un requisito per l'animazione con storyboard, perché gli storyboard richiedono destinazione tramite il Namee non può essere la destinazione del riferimento all'oggetto.

//  
// Create a Rectangle
//
Rectangle myRectangle = new Rectangle();
myRectangle.Width = 200;
myRectangle.Height = 200;
myRectangle.Name = "myRectangle";
this.RegisterName(myRectangle.Name, myRectangle); 

.NET Framework
Disponibile da 3.0
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: