FrameworkElement.Name 속성

정의

요소를 식별하는 이름을 가져오거나 설정합니다. 이 이름은 이벤트 처리기 코드와 같은 코드 숨김이 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

속성 값

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에 표시하는 것이 유용한 경우) 예외입니다. 태그에서 원본 NameName 설정된 경우 코드 숨김에서 설정하는 것도 권장되지 않으며 XAML을 로드한 후 속성을 변경해도 원래 개체 참조는 변경되지 않습니다. 개체 참조는 구문 분석 중에 기본 이름 범위가 명시적으로 생성되는 경우에만 만들어집니다. 이미 로드된 요소의 속성을 효과적으로 변경하려면 Name 특별히 호출 RegisterName 해야 합니다.

코드에서 설정 Name 이 중요한 한 가지 주목할 만한 사례는 스토리보드가 실행될 요소의 이름을 등록하여 런타임에 참조할 수 있도록 하는 것입니다. 이름을 등록하기 전에 인스턴스를 인스턴스화하고 할당 NameScope 해야 할 수도 있습니다. 예제 섹션 또는 Storyboards 개요를 참조하세요.

설정 Name 코드에서 제한적으로 애플리케이션을 하지만 여는 요소 가져오기 Name 더 일반적입니다. 하나의 특정 시나리오는 애플리케이션 페이지가 애플리케이션을 다시 로드 런타임 코드는 반드시 코드 숨김 페이지에 대해 정의 되지 않았고 탐색 모델을 지 원하는 경우입니다. 모든 FrameworkElement유틸리티 메서드에서 사용할 수 있는 유틸리티 메서드FindName는 필요에 따라 Name 트리를 재귀적으로 검색하여 해당 요소의 논리 트리에서 요소를 찾을 수 있습니다. 또는 문자열을 FindLogicalNode 인수로 사용하는 정적 메서드 LogicalTreeHelperName 사용할 수 있습니다.

일반적으로 사용되는 루트 요소(WindowPage예: 인터페이스)는 인터페이스INameScope를 구현합니다. 이 인터페이스의 구현은 해당 범위 내에서 이름이 모호하지 않게 적용해야 합니다. 이 인터페이스를 정의하는 루트 요소는 관련된 모든 API에 대한 이름 범위 동작 경계도 정의합니다.

이 속성은 Name 다른 프로세스의 식별자로도 사용됩니다. 예를 들어 WPF 자동화 모델은 클라이언트 및 공급자를 위한 AutomationId로 사용됩니다 Name .

XAML 사양에 Name 정의된 기본 x:Name 지시문 에 의해 적용되는 문자열 값에는 몇 가지 제한이 있습니다. 특히 문자 Name 또는 밑줄 문자(_)로 시작해야 하며 문자, 숫자 또는 밑줄만 포함해야 합니다. 자세한 내용은 WPF XAML 이름 범위를 참조하세요.

Name 는 애니메이션을 대상으로 하는 데 이름 자체가 중요하기 때문에 애니메이션을IsAnimationProhibited true 적용할 수 없는 몇 안 되는 종속성 속성 중 하나입니다( 메타데이터에 있음). 데이터 바인딩 A Name 는 기술적으로 가능하지만 데이터 바인딩 Name 이 속성의 기본 용도인 코드 숨김에 대한 식별자 연결 지점을 제공할 수 없으므로 매우 드문 시나리오입니다.

종속성 속성 정보

식별자 필드 NameProperty
메타 데이터 속성 설정 true IsAnimationProhibited

적용 대상