x:Uid Directive

Provides a unique identifier for markup elements. In many scenarios, this unique identifier is used by XAML localization processes and tools.

<object x:Uid="identifier"... />


A manually created or autogenerated string that should be unique in a file when it is interpreted by an x:Uid consumer.

In [MS-XAML], x:Uid is defined as a directive. For more information, see [MS-XAML] Section 5.3.6.

x:Uid is discrete from x:Name both because of the stated XAML localization scenario and so that identifiers that are used for localization have no dependencies on the programming model implications of x:Name. Also, x:Name is governed by the XAML namescope; however, x:Uid is not governed by any XAML language defined concept of uniqueness enforcement. XAML processors in a broad sense (processors that are not part of the localization process) are not expected to enforce uniqueness of x:Uid values. That responsibility is conceptually on the originator of the values. The expectation of uniqueness of x:Uid values within a single XAML source is reasonable for consumers of the values, such as dedicated globalization processes or tools. The typical uniqueness model is that x:Uid values are unique within an XML-encoded file that represents XAML.

Tools that have significant knowledge of a particular XAML schema can choose to apply x:Uid only for true localizable strings, instead of for all cases where a text string value is encountered in markup.

Frameworks can specify a particular property in their object model to be an alias for x:Uid by applying the attribute UidPropertyAttribute to the defining type. If a framework specifies a particular property, it is not valid to specify both x:Uid and the aliased member on the same object. If both x:Uid and the aliased member are specified, the .NET Framework XAML Services API typically throws XamlDuplicateMemberException for this case.

For more information about the role of x:Uid in the WPF localization process and in the BAML form of XAML, see Globalization for WPF or Uid

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft