FrameworkElement.Name FrameworkElement.Name FrameworkElement.Name FrameworkElement.Name Property

정의

요소를 식별하는 이름을 가져오거나 설정합니다.Gets or sets the identifying name of the element. 이 이름은 생성된 후 XAMLXAML 프로세서에서 처리하는 동안 이벤트 처리기 코드 등의 코드 숨김에서 태그 요소를 참조할 수 있도록 참조를 제공합니다.The name provides a reference so that code-behind, such as event handler code, can refer to a markup element after it is constructed during processing by a XAMLXAML processor.

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; }
member this.Name : string with get, set
Public Property Name As String

속성 값

요소의 이름을 나타내며The name of the element. 기본값은 빈 문자열입니다.The default is an empty string.

구현

예제

다음 예제에서는 합니다 Name 코드에서 속성 다음 이름을 새로 만든에 등록 NameScope 를 호출 하 여 RegisterName입니다.The following example sets the Name property in code, and then registers the name into the newly created NameScope by calling RegisterName. 여기서 설명 하는 기술을 요구 사항 스토리 보드를 사용 하 여 애니메이션 효과 적용 하 여 대상으로 하는 스토리 보드 필요 하기 때문에 Name, 및 개체 참조에 의해 대상으로 지정할 수 없습니다.The technique illustrated here is a requirement for animating with storyboards, because storyboards require targeting by the Name, and cannot be targeted by object reference.

//  
// 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)

설명

이 속성의 가장 일반적인 사용법을 지정 하는 것을 XAMLXAML 태그 특성으로 요소 이름입니다.The most common usage of this property is to specify a XAMLXAML element name as an attribute in markup.

이 속성은 기본적으로 설정 하는 WPF 프레임 워크 수준 편의 속성을 제공 합니다 XAMLXAML X:name 지시문합니다.This property essentially provides a WPF framework-level convenience property to set the XAMLXAML x:Name Directive.

이름은 이름 범위 내에서 고유 해야 합니다.Names must be unique within a namescope. 자세한 내용은 WPF XAML 이름 범위합니다.For more information, see WPF XAML Namescopes.

가져오기는 Name 코드에서 요소를 만드는 경우 일반적인 아닙니다.Getting a Name if you are creating elements in code is not common. 코드에 적절 한 참조가 이미 있는 경우 메서드를 호출 하기만 하면 및 요소에서 속성 참조는 일반적으로 필요 하지는 Name합니다.If you have the appropriate reference in code already, you can just call methods and properties on the element reference and will not generally need the Name. 이 예외는 경우는 Name 문자열에 일부 오버 로드 된 즉, 예를 들어에서 해당 이름을 표시 하는 데 유용 하 고 있으면 UIUI합니다.An exception to this is if the Name string has some overloaded meaning, for instance if it is useful to display that name in UIUI. 설정 된 Name 코드 숨김 파일에서 경우 원래 Name 태그에서 설정 된도 권장 되지 않습니다 하 고 로드 한 후 속성을 변경를 XAMLXAML 원래 개체 참조를 변경 되지 것입니다.Setting a Name from code-behind if the original Name was set from markup is also not recommended, and changing the property after loading the XAMLXAML will not change the original object reference. 개체 참조를 구문 분석 중에 기본 이름 범위를 명시적으로 만든 경우에 생성 됩니다.The object references are created only when the underlying namescopes are explicitly created during parsing. 명시적으로 호출 해야 합니다 RegisterName 에 대 한 효과적인 변경 되도록는 Name 이미 로드 된 요소의 속성입니다.You must specifically call RegisterName to make an effective change to the Name property of an already loaded element.

하나 주목할 만한에서는 설정 경우 Name 코드에서 런타임 시 참조할 수 있도록 요소는 스토리 보드를 실행에 대 한 이름을 등록할 때입니다.One notable case where setting Name from code is important is when registering names for elements that storyboards will run against, so that they can be referenced at run time. 이름을 등록할 수 있습니다, 전에를 인스턴스화할 때 할당 해야 할 수는 NameScope 인스턴스.Before you can register a name, might also need to instantiate and assign a NameScope instance. 예제 섹션을 참조 하거나 스토리 보드 개요합니다.See the Example section, or Storyboards Overview.

설정 Name 코드에서 제한적으로 애플리케이션을 하지만 여는 요소 가져오기 Name 더 일반적입니다.Setting Name from code has limited applications, but getting an element by Name is more common. 하나의 특정 시나리오는 애플리케이션 페이지가 애플리케이션을 다시 로드 런타임 코드는 반드시 코드 숨김 페이지에 대해 정의 되지 않았고 탐색 모델을 지 원하는 경우입니다.One particular scenario is if your application supports a navigation model where pages reload into the application, and the run time code is not necessarily code-behind defined for that page. 유틸리티 메서드 FindName에서 사용할 수 있는 FrameworkElement, 모든 요소를 찾을 수 있습니다 Name 해당 요소에 대 한 논리 트리에서 필요에 따라는 트리를 재귀적으로 검색 합니다.The utility method FindName, which is available from any FrameworkElement, can find any element by Name in the logical tree for that element, searching the tree recursively as necessary. 사용할 수 있습니다는 FindLogicalNode 의 정적 메서드 LogicalTreeHelper도 적용 되는 Name 인수로 문자열입니다.Or you can use the FindLogicalNode static method of LogicalTreeHelper, which also takes a Name string as an argument.

일반적으로 사용 되는 루트 요소 (Window하십시오 Page 예를 들어) 인터페이스를 구현 INameScope합니다.Typically used root elements (Window, Page for example) implement the interface INameScope. 이 인터페이스의 구현은 이름이 해당 범위 내에서 명확 해야 하는 적용 되어야 합니다.Implementations of this interface are expected to enforce that names be unambiguous within their scope. 이 인터페이스를 정의 하는 루트 요소에는 모든 네임 스페이스 동작 경계를 정의할 수도 관련 APIAPIs합니다.The root elements that define this interface also define the namescope behavior boundaries for all the related APIAPIs.

Name 속성이 다른 프로세스에 대 한 식별자로도 제공 됩니다.The Name property also serves as an identifier for other processes. 예를 들어 합니다 WPFWPF 자동화 모델에서 사용할 Name 클라이언트 및 공급자에 대 한 AutomationId로 합니다.For instance, the WPFWPF automation model will use Name as the AutomationId for clients and providers.

사용 되는 문자열 값 Name 내부에서 부여 된 몇 가지 제한이 X:name 지시문 정의한는 XAMLXAML 사양입니다.The string values used for Name have some restrictions, as imposed by the underlying x:Name Directive defined by the XAMLXAML specification. 가장 주목할 만한를 Name 문자 또는 밑줄 ()를 시작 해야 하며 문자, 숫자 또는 밑줄만 포함 해야 합니다.Most notably, a Name must start with a letter or the underscore character (), and must contain only letters, digits, or underscores. 자세한 내용은 WPF XAML 이름 범위합니다.For more information, see WPF XAML Namescopes.

Name 애니메이션을 적용할 수 있는 거의 종속성 속성 중 하나입니다 (IsAnimationProhibitedtrue 메타 데이터에서) 이름 자체를 애니메이션 대상으로 하는 것에 대 한 중요 한 이기 때문입니다.Name is one of the very few dependency properties that cannot be animated (IsAnimationProhibited is true in metadata), because the name itself is vital for targeting an animation. 데이터 바인딩을 Name 기술적으로 가능 하기 때문에 매우 드문 경우 이지만 데이터 바인딩된 Name 속성의 기본 의도 한 목적으로 사용 될 수 없습니다: 코드 숨김에 대 한 식별자 연결점을 제공 합니다.Data binding a Name is technically possible, but is an extremely uncommon scenario because a data-bound Name cannot serve the main intended purpose of the property: to provide an identifier connection point for code-behind.

종속성 속성 정보Dependency Property Information

식별자 필드Identifier field NameProperty
메타 데이터 속성 설정 trueMetadata properties set to true IsAnimationProhibited

적용 대상