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 元素名稱做為屬性。

這個屬性基本上會提供 WPF 架構層級的便利屬性,以設定 XAML x:Name 指示詞

名稱在名稱範圍內必須是唯一的。 如需詳細資訊,請參閱 WPF XAML Namescopes

Name如果您在程式碼中建立元素並不常見,請取得 。 如果您在程式碼中已經有適當的參考,您可以直接在專案參考上呼叫方法和屬性,而且通常 Name 不需要 。 例外狀況是, Name 如果字串具有一些多載的意義,例如,如果在 UI 中顯示該名稱很有用。 Name如果也不建議從標記設定原始 Name 代碼後置,而且載入 XAML 之後變更 屬性並不會變更原始物件參考。 只有在剖析期間明確建立基礎名稱範圍時,才會建立物件參考。 您必須特別呼叫 RegisterName ,才能對已載入之專案的 屬性進行有效的變更 Name

有一個值得注意的案例,其中從程式碼設定 Name 很重要,就是註冊腳本將執行的專案名稱時,以便在執行時間參考它們。 您必須先具現化並指派 NameScope 實例,才能註冊名稱。 請參閱範例一節或 分鏡腳本概觀

從程式碼設定 Name 有有限的應用程式,但取得 Name 元素比較常見。 其中一個特定案例是,如果您的應用程式支援將頁面重載至應用程式的流覽模型,而且執行時間程式碼不一定是針對該頁面定義的程式碼後置。 公用程式方法 FindName 可從任何 FrameworkElement 取得,可以視需要在該專案的邏輯樹狀結構中尋找任何元素 Name ,視需要以遞迴方式搜尋樹狀結構。 或者,您可以使用 的 FindLogicalNode LogicalTreeHelper 靜態方法,它也會採用 Name 字串做為引數。

通常使用根項目 (WindowPage 例如,) 實作 介面 INameScope 。 此介面的實作預期會在其範圍內強制執行該名稱不明確。 定義此介面的根項目也會定義所有相關 API 的名稱範圍行為界限。

屬性 Name 也會做為其他進程的識別碼。 例如,WPF 自動化模型會作為 Name 用戶端和提供者的 AutomationId。

所使用的 Name 字串值有一些限制,如 XAML 規格所定義的基礎 x:Name 指示 詞所加加。 特別是, Name 開頭必須是字母或底線字元 (_) ,而且只能包含字母、數位或底線。 如需詳細資訊,請參閱 WPF XAML Namescopes

Name 是在中繼資料 () IsAnimationProhibited true 中無法產生動畫效果的相依性屬性之一,因為名稱本身對於以動畫為目標很重要。 資料系結 Name 是技術上可行的,但這是極不常見的案例,因為資料系結 Name 無法提供屬性的主要用途:為程式碼後置提供識別碼連接點。

相依性屬性資訊

識別碼欄位 NameProperty
設定為 的中繼資料屬性 true IsAnimationProhibited

適用於