FrameworkContentElement.Name プロパティ


要素の識別名を取得または設定します。Gets or sets the identifying name of the element. この名前はインスタンス参照を提供するため、XAMLXAML の解析中に参照が構築されると、プログラムの分離コード (イベント ハンドラー コードなど) は要素を参照できるようになります。The name provides an instance reference so that programmatic code-behind, such as event handler code, can refer to an element once it is constructed during parsing of XAMLXAML.

 property System::String ^ Name { System::String ^ get(); void set(System::String ^ value); };
public string Name { get; set; }
member this.Name : string with get, set
Public Property Name As String


要素の名前です。The name of the element.




このプロパティの最も一般的な使用方法は、マークアップで XAMLXAML 要素名を指定する場合です。The most common usage of this property is when specifying a XAMLXAML element name in markup.

このプロパティは、基本的に、XAMLXAML X:Name ディレクティブを設定するための WPF フレームワークレベルの便宜的なプロパティを提供します。This property essentially provides a WPF framework-level convenience property to set the XAMLXAML x:Name Directive.

コードから Name を取得することは一般的ではありません。コードに既に適切な参照がある場合は、要素参照のメソッドとプロパティを呼び出すだけで、Nameは通常必要ありません。Getting a Name from code is not common, because if you have the appropriate reference in code already, you can just call methods and properties on the element reference and do not generally need the Name. 例外は、文字列にオーバーロードされた意味がある場合 (UIUIにその名前を表示すると便利な場合など) です。An exception is if the string has some overloaded meaning, for instance if it is useful to display that name in UIUI. 元の Name をマークアップから設定した場合、コードから Name を設定することもお勧めしません。プロパティを変更しても、オブジェクト参照は変更されません。Setting a Name from code if the original Name was set from markup is also not recommended, and changing the property will not change the object reference. このようなオブジェクト参照は、基になる名前スコープが XAMLXAML の読み込み中に明示的に作成された場合にのみ作成されます。Such object references are created only when the underlying namescopes are explicitly created during XAMLXAML loading.

既に読み込まれている要素の Name プロパティを有効に変更するには、RegisterName を明示的に呼び出す必要があります。You must specifically call RegisterName to make an effective change on the Name property of an already loaded element.

コードから Name を設定することが重要なケースの1つは、ストーリーボードの実行対象となる要素に名前を付けることです。One notable case where setting Name from code is important is for naming elements that storyboards will run against. 名前を登録する前に、をインスタンス化して 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 を設定すると、アプリケーションに制限がありますが、名前によって要素を検索する方が一般的です。特に、ページをアプリケーションに再読み込みするナビゲーションモデルを使用していて、実行時コードが必ずしもそのページの分離コードであるとは限りません。Setting Name from code has limited applications, but looking up an element by name is more common, particularly if you are employing a navigation model where pages reload into the application and the run-time code is not necessarily the code-behind of that respective page. 任意の FrameworkContentElementから使用できるユーティリティメソッド FindNameは、その要素の論理ツリー内の Name によって要素を再帰的に検索できます。The utility method FindName, which is available from any FrameworkContentElement, can find any element by Name in that element's logical tree recursively. または、LogicalTreeHelperFindLogicalNode 静的メソッドを使用することもできます。これは、引数として Name 文字列を受け取ります。Or you can use the FindLogicalNode static method of LogicalTreeHelper, which also takes the Name string as an argument.

一般的に使用されるルート要素 (WindowPage など) は、インターフェイス INameScopeを実装します。Commonly 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.

依存プロパティ情報Dependency Property Information

識別子フィールドIdentifier field NameProperty
メタデータプロパティが true に設定されるMetadata properties set to true IsAnimationProhibited