x:Key 특성
리소스로 생성 및 참조되고 ResourceDictionary 내에 존재하는 요소를 고유하게 식별합니다.
XAML 특성 사용
<ResourceDictionary>
<object x:Key="stringKeyValue".../>
</ResourceDictionary>
XAML 특성 사용(암시적 ResourceDictionary)
<object.Resources>
<object x:Key="stringKeyValue".../>
</object.Resources>
XAML 값
용어 | 설명 |
---|---|
개체 | 공유할 수 있는 모든 개체. ResourceDictionary 및 XAML 리소스를 참조하십시오. |
stringKeyValue | 키로 사용되는 실제 문자열이며 XamlName> 문법을 따라야 합니다. 아래의 "XamlName 문법"을 참조하세요. |
XamlName 문법
다음은 UWP(유니버설 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:Key 및 x:Name 은 동일한 개념이 아닙니다. x:Key 는 리소스 사전에서만 사용됩니다. x:Name은 XAML의 모든 영역에 사용됩니다. 키 값을 사용하는 FindName 호출은 키 리소스를 검색하지 않습니다. 리소스 사전에 정의된 개체에는 x:Key, x:Name 또는 둘 다 있을 수 있습니다. 키와 이름은 일치시킬 필요가 없습니다.
표시된 암시적 구문에서 ResourceDictionary 개체는 WPF XAML 프로세서가 리소스 컬렉션을 채울 새로운 개체를 생성하는 방법에 대해 암시적이라는 것을 명심하십시오.
x:Key를 지정하는 것과 동일한 코드는 기본 ResourceDictionary에서 키를 사용하는 모든 작업입니다. 예를 들어 리소스에 대한 태그에 적용된 x:Key 는 ResourceDictionary 에 리소스를 추가할 때 Insert 의 key 매개 변수 값과 동일합니다.
리소스 사전의 항목은 대상 스타일 또는 ControlTemplate인 경우 x:Key 값을 생략할 수 있습니다. 이러한 각 경우에서 리소스 항목의 암시적 키는 문자열로 해석되는 TargetType 값입니다. 자세한 내용은 빠른 시작: 컨트롤 스타일 지정 및 ResourceDictionary 및 XAML 리소스 참조를 참조하세요.