x:Key 屬性 \(部分機器翻譯\)

可唯一識別做為資源建立和參考的元素,以及存在於 ResourceDictionary 中的元素。

XAML 屬性用法

<ResourceDictionary>
  <object x:Key="stringKeyValue".../>
</ResourceDictionary>

XAML 屬性用法 (隱含 ResourceDictionary)

<object.Resources>
  <object x:Key="stringKeyValue".../>
</object.Resources>

XAML 值

詞彙 描述
object 任何可共用的物件。 請參閱 ResourceDictionary 與 XAML 資源參考
stringKeyValue 用做索引鍵的真實字串,必須符合 XamlName> 文法。 請參閱下面的「XamlName 文法」。

XamlName 文法

以下是在通用 Windows 平台 (UWP) XAML 實作中用作索引鍵的字串的規範文法:

XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
  • 字元限制為較低的 ASCII 範圍,更具體地限制為羅馬字母大寫和小寫字母、數字和底線 (_) 字元。
  • 不支援 Unicode 字元範圍。
  • 名稱不能以數字開頭。

備註

ResourceDictionary 的下層元素通常包含 x:Key 屬性,指定該字典內的唯一索引鍵值。 XAML 處理器會在載入時強制執行索引鍵唯一性。 非唯一的 x:Key 值將導致 XAML 剖析例外狀況。 如果 {StaticResource} 標記延伸要求,非解析的索引鍵也會造成 XAML 剖析例外狀況。

x:Keyx:Name 不是完全相同的概念。 x:Key 專用於資源字典中。 x:Name 用於 XAML 的所有區域。 使用索引鍵值的 FindName 呼叫將不會擷取索引鍵的資源。 資源字典中定義的物件可能具有 x:Keyx:Name 或兩者。 不需要索引鍵和名稱才能比對。

請注意,在顯示的隱含語法中,ResourceDictionary 物件隱含於 XAML 處理器如何產生新物件以填入 Resources 集合。

指定 x:Key 的程式碼相當於任何使用索引鍵搭配基礎 ResourceDictionary 的作業。 例如,在資源標記中套用的 x:Key 相當於將資源新增至 ResourceDictionaryInsertkey 參數的值。

如果資源字典中的項目是目標 StyleControlTemplate,則可以省略 x:Key 的值;在每種情況下,資源項目的隱含索引鍵都是解釋為字串的 TargetType 值。 有關詳細資訊,請參閱快速入門:樣式控制項以及 ResourceDictionary 和 XAML 資源參考