Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Unieke identificatie van objectelementen voor toegang tot het geïnstantieerde object vanuit code-behind of algemene code. Nadat x:Name is toegepast op een backingprogrammeermodel, kan x :Name worden beschouwd als gelijkwaardig aan de variabele die een objectverwijzing bevat, zoals geretourneerd door een constructor.
XAML-kenmerkgebruik
<object x:Name="XAMLNameValue".../>
XAML-waarden
| Termijn | Description |
|---|---|
| XAMLNameValue | Een tekenreeks die voldoet aan de beperkingen van de XamlName-grammatica. |
Grammatica van XamlName
Hier volgt de normatieve grammatica voor een tekenreeks die wordt gebruikt als sleutel in deze XAML-implementatie:
XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
- Tekens zijn beperkt tot het onderste ASCII-bereik en meer specifiek voor hoofdletters en kleine letters, cijfers en het onderstrepingsteken (_).
- Het Unicode-tekenbereik wordt niet ondersteund.
- Een naam kan niet beginnen met een cijfer. Bij sommige hulpprogrammaimplementaties wordt een onderstrepingsteken (_) voorafgegaan aan een tekenreeks als de gebruiker een cijfer als het oorspronkelijke teken levert, of worden x:Name-waarden automatisch gegenereerd op basis van andere waarden die cijfers bevatten.
Opmerkingen
De opgegeven x:Name wordt de naam van een veld dat wordt gemaakt in de onderliggende code wanneer XAML wordt verwerkt en dat veld bevat een verwijzing naar het object. Het proces voor het maken van dit veld wordt uitgevoerd door de MSBuild-doelstappen, die ook verantwoordelijk zijn voor het toevoegen van de gedeeltelijke klassen voor een XAML-bestand en de bijbehorende code-behind. Dit gedrag is niet noodzakelijkerwijs gespecificeerd door de XAML-taal; het is de specifieke implementatie die UWP-programmering (Universal Windows Platform) voor XAML toepast op het gebruik van x:Name binnen zijn programmeer- en applicatiemodellen.
Elke gedefinieerde x:Name moet uniek zijn binnen een XAML-naamscoop. Over het algemeen wordt een XAML-naamscoop gedefinieerd op het niveau van het hoofdelement van een geladen pagina en bevat alle elementen onder dat element op één XAML-pagina. Extra XAML-naamscopen worden gedefinieerd door een besturingssjabloon of gegevenssjabloon die op die pagina is gedefinieerd. Tijdens de uitvoering wordt een andere XAML-naamscope gemaakt voor de wortel van de objectstructuur die is gemaakt door een toegepaste bedieningssjabloon en ook door objectstructuren die zijn gemaakt door een aanroep van XamlReader.Load. Zie XAML-naamscopen voor meer informatie.
Ontwerphulpmiddelen genereren vaak x:Name-waarden voor elementen wanneer ze worden geïntroduceerd in het ontwerpoppervlak. Het schema voor automatische generatie varieert afhankelijk van het ontwerpprogramma dat u gebruikt, maar een typisch schema is het genereren van een tekenreeks die begint met de klassenaam die het element ondersteunt, gevolgd door een oplopend geheel getal. Als u bijvoorbeeld het eerste knopelement aan de ontwerpfunctie introduceert, ziet u mogelijk dat dit element in de XAML de waarde x:Name kenmerk ' Button1' heeft.
x:Name kan niet worden ingesteld in de syntaxis van het eigenschapselement XAML of in code met behulp van SetValue. x:Name kan alleen worden ingesteld met behulp van de syntaxis van het XAML-kenmerk op elementen.
Opmerking
Specifiek voor C++/CX-apps wordt er geen back-upveld voor een x:Naamverwijzing gemaakt voor het hoofdelement van een XAML-bestand of -pagina. Als u naar het hoofdobject wilt verwijzen vanuit C++ code-behind, gebruikt u andere API's of tree traversal. U kunt bijvoorbeeld FindName aanroepen voor een bekend onderliggend element en vervolgens Parent aanroepen.
x:Naam en andere naameigenschappen
Sommige typen die in XAML worden gebruikt, hebben ook een eigenschap met de naam Naam. Bijvoorbeeld FrameworkElement.Name en TextElement.Name.
Als Naam beschikbaar is als een instelbare eigenschap voor een element, kunnen Naam en x:Naam wederzijds verwisselbaar worden gebruikt in XAML, maar treedt er een fout op als beide attributen op hetzelfde element zijn opgegeven. Er zijn ook gevallen waarin er een naameigenschap is, maar deze alleen-lezen is (zoals VisualState.Name). Als dat het geval is, gebruikt u altijd x:Name om dat element in de XAML een naam te geven en bestaat de alleen-lezen Name voor een minder gebruikelijk codescenario.
OpmerkingFrameworkElement.Name over het algemeen niet moet worden gebruikt als een manier om waarden te wijzigen die oorspronkelijk zijn ingesteld door x:Name, hoewel er enkele scenario's zijn die uitzonderingen op die algemene regel zijn. In typische scenario's is het maken en definiëren van XAML-naamscopen een XAML-processorbewerking. Het wijzigen van FrameworkElement.Name tijdens runtime kan leiden tot een inconsistente XAML-naamscoop/persoonlijke veldnaamuitlijning, wat moeilijk is om bij te houden in uw code-behind.
x:Naam en x:Sleutel
x:Name kan worden toegepast als een kenmerk op elementen in een ResourceDictionary om te fungeren als vervanging voor het kenmerk x:Key. (Het is een regel dat alle elementen in een ResourceDictionary een kenmerk x:Key of x:Name moeten hebben.) Dit is gebruikelijk voor storyboard-animaties. Zie de sectie ResourceDictionary en XAML-resourceverwijzingen voor meer informatie.
Windows developer