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:Key 和 x:Name 不是完全相同的概念。 x:Key 專用於資源字典中。 x:Name 用於 XAML 的所有區域。 使用索引鍵值的 FindName 呼叫將不會擷取索引鍵的資源。 資源字典中定義的物件可能具有 x:Key、x:Name 或兩者。 不需要索引鍵和名稱才能比對。
請注意,在顯示的隱含語法中,ResourceDictionary 物件隱含於 XAML 處理器如何產生新物件以填入 Resources 集合。
指定 x:Key 的程式碼相當於任何使用索引鍵搭配基礎 ResourceDictionary 的作業。 例如,在資源標記中套用的 x:Key 相當於將資源新增至 ResourceDictionary 時 Insert 的 key 參數的值。
如果資源字典中的項目是目標 Style 或 ControlTemplate,則可以省略 x:Key 的值;在每種情況下,資源項目的隱含索引鍵都是解釋為字串的 TargetType 值。 有關詳細資訊,請參閱快速入門:樣式控制項以及 ResourceDictionary 和 XAML 資源參考。