FrameworkElement.Name 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
요소의 식별 이름을 가져오거나 설정합니다. 이 이름은 이벤트 처리기 코드와 같은 코드 숨김이 XAML 프로세서에서 처리하는 동안 생성된 후 태그 요소를 참조할 수 있도록 참조를 제공합니다.
public:
property System::String ^ Name { System::String ^ get(); void set(System::String ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)]
public string Name { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)>]
member this.Name : string with get, set
Public Property Name As String
속성 값
요소의 이름입니다. 기본값은 빈 문자열입니다.
구현
- 특성
예제
다음 예제에서는 코드에서 Name 속성을 설정 하 고 호출 RegisterName하 여 새로 만든 NameScope 에 이름을 등록 합니다. 여기에 설명된 기술은 스토리보드를 대상으로 지정해야 하며 개체 참조의 대상이 Name될 수 없으므로 스토리보드에 애니메이션 효과를 주는 데 필요합니다.
//
// Create a Rectangle
//
Rectangle myRectangle = new Rectangle();
myRectangle.Width = 200;
myRectangle.Height = 200;
myRectangle.Name = "myRectangle";
this.RegisterName(myRectangle.Name, myRectangle);
'
' Create a Rectangle
'
Dim myRectangle As New Rectangle()
myRectangle.Width = 200
myRectangle.Height = 200
myRectangle.Name = "myRectangle"
Me.RegisterName(myRectangle.Name, myRectangle)
설명
이 속성의 가장 일반적인 사용은 태그에서 특성으로 XAML 요소 이름을 지정 하는 것입니다.
이 속성은 기본적으로 XAML x:Name 지시문을 설정하는 WPF 프레임워크 수준 편의 속성을 제공합니다.
이름은 이름 범위 내에서 고유해야 합니다. 자세한 내용은 WPF XAML 이름 스코프를 참조하세요.
코드에서 Name 요소를 만드는 경우 가져오는 것은 일반적이지 않습니다. 코드에 적절한 참조가 이미 있는 경우 요소 참조에서 메서드 및 속성을 호출할 수 있으며 일반적으로 필요하지 Name않습니다. 문자열에 오버로드된 의미가 있는 경우 Name (예: 해당 이름을 UI에 표시하는 것이 유용한 경우) 예외입니다. Name 태그에서 원본 Name 이 설정된 경우 코드 숨김에서 설정하는 것도 권장되지 않으며 XAML을 로드한 후 속성을 변경해도 원래 개체 참조는 변경되지 않습니다. 개체 참조는 구문 분석 중에 기본 이름 범위가 명시적으로 생성되는 경우에만 생성됩니다. 이미 로드된 요소의 속성을 효과적으로 변경하려면 Name 특별히 호출 RegisterName 해야 합니다.
코드에서 설정하는 Name 것이 중요한 한 가지 주목할 만한 사례는 스토리보드가 실행될 요소의 이름을 등록하여 런타임에 참조할 수 있도록 하는 것입니다. 이름을 등록하기 전에 인스턴스를 인스턴스화하고 할당 NameScope 해야 할 수도 있습니다. 예제 섹션 또는 스토리보드 개요를 참조하세요.
코드에서 설정 Name 하면 애플리케이션이 제한되지만 요소를 Name 가져오는 것이 더 일반적입니다. 한 가지 특정 시나리오는 애플리케이션에서 페이지가 애플리케이션으로 다시 로드되는 탐색 모델을 지원하고 런타임 코드가 해당 페이지에 대해 반드시 코드 숨김이 정의되지 않는 경우입니다. 모든 FrameworkElement항목에서 사용할 수 있는 유틸리티 메서드FindName는 필요에 따라 Name 트리를 재귀적으로 검색하여 해당 요소의 논리 트리에서 요소를 찾을 수 있습니다. 또는 문자열을 FindLogicalNode 인수로 사용하는 정적 메서드 LogicalTreeHelper를 Name 사용할 수 있습니다.
일반적으로 사용되는 루트 요소(WindowPage예: 인터페이스)는 인터페이스INameScope를 구현합니다. 이 인터페이스의 구현은 해당 범위 내에서 이름이 모호하지 않게 적용해야 합니다. 또한 이 인터페이스를 정의하는 루트 요소는 관련된 모든 API에 대한 이름 범위 동작 경계를 정의합니다.
이 속성은 Name 다른 프로세스의 식별자 역할을 합니다. 예를 들어 WPF 자동화 모델은 클라이언트 및 공급자를 위한 AutomationId로 사용됩니다 Name .
XAML 사양에 Name 정의된 기본 x:Name 지시문 에 의해 적용되는 문자열 값에는 몇 가지 제한 사항이 있습니다. 특히 문자 Name 또는 밑줄 문자(_)로 시작해야 하며 문자, 숫자 또는 밑줄만 포함해야 합니다. 자세한 내용은 WPF XAML 이름 스코프를 참조하세요.
Name 는 애니메이션을 대상으로 하는 데 이름 자체가 중요하기 때문에 애니메이션을IsAnimationProhibitedtrue 적용할 수 없는 몇 안 되는 종속성 속성 중 하나입니다( 메타데이터에 있음). 데이터 바인딩은 Name 기술적으로 가능하지만 데이터 바인딩 Name 이 코드 숨김에 대한 식별자 연결 지점을 제공하는 속성의 주요 용도를 제공할 수 없기 때문에 매우 드문 시나리오입니다.
종속성 속성 정보
| Item | 가치 |
|---|---|
| 식별자 필드 | NameProperty |
메타데이터 속성이 다음으로 설정됩니다. true |
IsAnimationProhibited |