다음을 통해 공유


x:Key 속성

리소스로 생성 및 참조되고 ResourceDictionary 내에 존재하는 요소를 고유하게 식별합니다.

XAML 특성 사용

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

XAML 특성 사용(암시적 ResourceDictionary)

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

XAML 값

용어 Description
객체 공유할 수 있는 모든 개체입니다. ResourceDictionary 및 XAML 리소스 참조를 참조하세요.
stringKeyValue 키로 사용되는 참 문자열로, XamlName> 문법을 준수해야 합니다. 아래의 "XamlName 문법"을 참조하세요.

XamlName 문법

다음은 Windows 런타임 XAML 구현에서 키로 사용되는 문자열에 대한 표준 문법입니다.

XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
  • 문자는 낮은 ASCII 범위로 제한되며, 특히 로마 알파벳 대문자 및 소문자, 숫자 및 밑줄(_) 문자로 제한됩니다.
  • 유니코드 문자 범위는 지원되지 않습니다.
  • 이름은 숫자로 시작할 수 없습니다.

비고

ResourceDictionary의 자식 요소에는 일반적으로 해당 사전 내에서 고유한 키 값을 지정하는 x:Key 특성이 포함됩니다. 키 고유성은 로드 시 XAML 프로세서에 의해 적용됩니다. 고유하지 않은 x:Key 값으로 인해 XAML 구문 분석 예외가 발생합니다. {StaticResource} 태그 확장에서 요청하는 경우 확인되지 않은 키로 인해 XAML 구문 분석 예외가 발생합니다.

x:Keyx:Name 은 동일한 개념이 아닙니다. x:Key 는 리소스 사전에서만 사용됩니다. x:Name은 XAML의 모든 영역에 사용됩니다. 키 값을 사용하는 FindName 호출은 키 리소스를 검색하지 않습니다. 리소스 사전에 정의된 개체에는 x:Key, x:Name 또는 둘 다 있을 수 있습니다. 키와 이름은 일치시킬 필요가 없습니다.

표시된 암시적 구문에서 ResourceDictionary 개체는 XAML 프로세서가 Resources 컬렉션을 채우는 새 개체를 생성하는 방법에 암시적입니다.

x:Key를 지정하는 것과 동일한 코드는 기본 ResourceDictionary에서 키를 사용하는 모든 작업입니다. 예를 들어 리소스에 대한 태그에 적용된 x:KeyResourceDictionary에 리소스를 추가할 때 Insert 매개 변수 값과 같습니다.

리소스 사전의 항목은 대상 스타일 또는 ControlTemplate인 경우 x:Key 값을 생략할 수 있습니다. 이러한 각 경우에 리소스 항목의 암시적 키는 문자열로 해석되는 TargetType 값입니다. 자세한 내용은 XAML 스타일ResourceDictionary 및 XAML 리소스 참조를 참조하세요.