x:Uid ディレクティブ
マークアップ要素の一意の識別子を提供します。 この一意識別子は、多くのシナリオで、XAML ローカライズ プロセスおよびツールによって使用されます。
XAML 属性の使用方法
<object x:Uid="identifier"... />
XAML 値
値 | 説明 |
---|---|
identifier |
x:Uid コンシューマーによって解釈されるときに、ファイル内で一意である必要がある、手動で作成された、または自動生成された文字列。 |
Remarks
[MS-XAML] では、x:Uid
はディレクティブとして定義されています。 詳細については、[MS-XAML] のセクション 7.3.6 を参照してください。
説明されている XAML ローカライズのシナリオと、ローカライズに使用される識別子が x:Name
のプログラミング モデルへの影響に依存しないようにすることの両方の理由から、x:Uid
と x:Name
は別のものになっています。 また、x:Name
は、XAML の名前スコープによって管理されます。一方、x:Uid
は、XAML 言語で定義された一意性の強制の概念では管理されません。 広い意味での XAML プロセッサは (ローカライズ プロセスの一部ではないプロセッサ)、x:Uid
の値の一意性を強制することを想定されていません。 その責任は、概念的には値の発行元にあります。 単一の XAML ソース内で x:Uid
の値が一意であると想定することは、専用のグローバリゼーション プロセスやツールなど、値のコンシューマーにとって妥当なことです。 一般的な一意性モデルでは、x:Uid
の値は XAML を表す XML でエンコードされたファイル内で一意です。
特定の XAML スキーマについて十分な知識を持つツールの場合、マークアップでテキスト文字列値が検出されるすべてのケースではなく、真のローカライズ可能な文字列にのみ x:Uid
を適用することができます。
フレームワークでは、定義している型に属性 UidPropertyAttribute を適用することにより、オブジェクト モデル内の特定のプロパティを x:Uid
の別名として指定できます。 フレームワークで特定のプロパティが指定されている場合、x:Uid
と別名が設定されたメンバーの両方を同じオブジェクトで指定することは無効です。 x:Uid
と別名が設定されたメンバーの両方を指定すると、通常、.NET XAML Services API によって XamlDuplicateMemberException がスローされます。
WPF の使用上の注意
WPF のローカライズ プロセスおよび XAML の BAML 形式における x:Uid
の役割の詳細については、「WPF のグローバリゼーション」または Uid に関するページを参照してください
関連項目
.NET Desktop feedback