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.

1 つの重要な設定がの場合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. 1 つのシナリオでは、アプリケーションが、アプリケーションにページが再読み込みして、必ずしもそのページに対して定義されている分離コードが実行時のコードではありません場所は、ナビゲーション モデルをサポートするかどうかです。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.

通常使用されるルート要素 (WindowPageなど)、インターフェイスを実装して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 アニメーション化することはできません非常にいくつかの依存関係プロパティの 1 つです (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

適用対象