FrameworkElement.Name Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de identificatienaam van het element op of stelt u deze in. De naam bevat een verwijzing, zodat code-achter, zoals gebeurtenishandlercode, kan verwijzen naar een markeringselement nadat het is samengesteld tijdens de verwerking door een XAML-processor.
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
Waarde van eigenschap
De naam van het element. De standaardwaarde is een lege tekenreeks.
Implementeringen
- Kenmerken
Voorbeelden
In het volgende voorbeeld wordt de Name eigenschap in code ingesteld en wordt de naam vervolgens geregistreerd in de zojuist gemaakte NameScope naam door aan te roepen RegisterName. De hier geïllustreerde techniek is een vereiste voor het animeren van storyboards, omdat storyboards gericht moeten zijn op de Nameen niet kunnen worden gericht op objectverwijzing.
//
// 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)
Opmerkingen
Het meest voorkomende gebruik van deze eigenschap is het opgeven van een XAML-elementnaam als een kenmerk in markeringen.
Deze eigenschap biedt in wezen een WPF eigenschap op frameworkniveau om de XAML-x:Name Directive in te stellen.
Namen moeten uniek zijn binnen een naamscoop. Zie WPF XAML Namescopes voor meer informatie.
Het ophalen van elementen Name in code is niet gebruikelijk. Als u al over de juiste verwijzing in code beschikt, kunt u methoden en eigenschappen aanroepen voor de elementreferentie en hebt u het over het Namealgemeen niet nodig. Een uitzondering hierop is als de Name tekenreeks een overbelaste betekenis heeft, bijvoorbeeld als het handig is om die naam weer te geven in de gebruikersinterface. Het instellen van een Name codeachter als het origineel Name is ingesteld vanuit markeringen wordt ook niet aanbevolen en als u de eigenschap wijzigt nadat de XAML is geladen, wordt de oorspronkelijke objectverwijzing niet gewijzigd. De objectverwijzingen worden alleen gemaakt wanneer de onderliggende naamscopen expliciet worden gemaakt tijdens het parseren. U moet specifiek aanroepen RegisterName om een effectieve wijziging aan te brengen in de Name eigenschap van een al geladen element.
Een belangrijk geval waarbij het instellen Name van code belangrijk is, is bij het registreren van namen voor elementen waarop storyboards worden uitgevoerd, zodat er tijdens runtime naar ze kan worden verwezen. Voordat u een naam kunt registreren, moet u mogelijk ook een NameScope exemplaar instantiëren en toewijzen. Zie de sectie Voorbeeld of Overzicht van Storyboards.
Het instellen Name van code heeft beperkte toepassingen, maar het ophalen van een element Name komt vaker voor. Een bepaald scenario is als uw toepassing ondersteuning biedt voor een navigatiemodel waarbij pagina's opnieuw worden geladen in de toepassing en de uitvoeringstijdcode niet noodzakelijkerwijs codeachter is gedefinieerd voor die pagina. De hulpprogrammamethode FindName, die beschikbaar is van elke FrameworkElement, kan elk element Name vinden in de logische structuur voor dat element, waarbij de structuur recursief wordt door gezocht, indien nodig. U kunt ook de FindLogicalNode statische methode gebruiken, LogicalTreeHelperwaarbij ook een Name tekenreeks als argument wordt gebruikt.
Doorgaans worden hoofdelementen (WindowPagebijvoorbeeld) gebruikt om de interface INameScopete implementeren. Implementaties van deze interface zullen naar verwachting afdwingen dat namen ondubbelzinnig zijn binnen hun bereik. De hoofdelementen die deze interface definiëren, definiëren ook de naambereikgedragsgrenzen voor alle gerelateerde API's.
De Name eigenschap fungeert ook als id voor andere processen. Het WPF automation-model gebruikt bijvoorbeeld Name als AutomationId voor clients en providers.
De tekenreekswaarden die worden gebruikt voor Name een aantal beperkingen, zoals opgelegd door de onderliggende x:Naamrichtlijn die is gedefinieerd door de XAML-specificatie. Met name moet een Name letter of het onderstrepingsteken (_) beginnen en mag alleen letters, cijfers of onderstrepingstekens bevatten. Zie WPF XAML Namescopes voor meer informatie.
Name is een van de zeer weinig afhankelijkheidseigenschappen die niet kunnen worden geanimeerd (IsAnimationProhibited in true metagegevens), omdat de naam zelf essentieel is voor het richten van een animatie. Gegevensbinding is Name technisch mogelijk, maar is een zeer ongebruikelijk scenario omdat een gegevensgrens Name niet het belangrijkste beoogde doel van de eigenschap kan dienen: een id-verbindingspunt voor code-behind opgeven.
Informatie over afhankelijkheidseigenschappen
| Item | Waarde |
|---|---|
| Id-veld | NameProperty |
Eigenschappen van metagegevens ingesteld op true |
IsAnimationProhibited |