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 呼び出して、新しく作成されたに名前を登録し NameScope RegisterName ます。 ここでは、ストーリーボードでのターゲット設定が必要であり、オブジェクト参照の対象にすることができないため、ここで説明する手法をストーリーボードでアニメーション化するための要件を示し 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 の読み込み後にプロパティを変更しても、元のオブジェクト参照は変更されません。 オブジェクト参照は、基になる名前スコープが解析中に明示的に作成された場合にのみ作成されます。 RegisterName既に読み込まれている要素のプロパティを有効に変更するには、明示的にを呼び出す必要があり Name ます。

コードから設定することが重要なケースの1つは、ストーリーボードが実行時に Name 参照できるように、ストーリーボードが実行される要素の名前を登録する場合です。 名前を登録する前に、をインスタンス化してインスタンスを割り当てることが必要になる場合もあり NameScope ます。 「例」または「 ストーリーボードの概要」を参照してください。

Nameコードからの設定には限られたアプリケーションがありますが、によって要素を取得する Name 方が一般的です。 特定のシナリオとして、アプリケーションがアプリケーションにページを再読み込みするナビゲーションモデルがサポートされていて、実行時コードがそのページに対して定義された分離コードではない場合があります。 FindName任意のから使用できるユーティリティメソッドは、 FrameworkElement 要素の論理ツリー内の任意の要素を検索し Name 、必要に応じてツリーを再帰的に検索できます。 または FindLogicalNode 、の静的メソッドを使用することもできます。このメソッドは LogicalTreeHelperName 引数として文字列を受け取ります。

一般的に使用されるルート要素 ( Window など Page ) は、インターフェイスを実装し INameScope ます。 このインターフェイスの実装では、その名前がスコープ内で明確になるようにする必要があります。 このインターフェイスを定義するルート要素は、関連するすべての Api の名前スコープの動作の境界も定義します。

プロパティは、 Name 他のプロセスの識別子としても機能します。 たとえば、WPF オートメーションモデルは、 Name クライアントとプロバイダーの AutomationId としてを使用します。

に使用される文字列値には Name 、XAML 仕様で定義されている、基になる x:Name ディレクティブ によって設定されるいくつかの制限があります。 特に、の Name 先頭には文字またはアンダースコア (_) を使用する必要があり、文字、数字、またはアンダースコアのみを含める必要があります。 詳細については、「 WPF XAML 名前スコープ」を参照してください。

Name は、アニメーションを対象とするために必要な名前であるため、アニメーション化できない ( IsAnimationProhibited true メタデータ内にある) 非常に少数の依存関係プロパティの1つです。 データバインディング a Name は技術的には可能ですが、データバインドでは、 Name プロパティの主な目的を満たすことができないため、コードビハインド用の識別子接続ポイントを提供するために、非常に一般的なシナリオです。

依存プロパティ情報

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

適用対象