FrameworkElement.Name 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定項目的識別名稱。 此名稱提供參考,讓事件處理常式程式碼等程式碼後置可以在 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
屬性值
元素的名稱。 預設為空字串。
實作
- 屬性
範例
下列範例會在 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 字串做為引數。
通常使用根項目 (Window , Page 例如,) 實作 介面 INameScope 。 此介面的實作預期會在其範圍內強制執行該名稱不明確。 定義此介面的根項目也會定義所有相關 API 的名稱範圍行為界限。
屬性 Name 也會做為其他進程的識別碼。 例如,WPF 自動化模型會作為 Name 用戶端和提供者的 AutomationId。
所使用的 Name 字串值有一些限制,如 XAML 規格所定義的基礎 x:Name 指示 詞所加加。 特別是, Name 開頭必須是字母或底線字元 (_) ,而且只能包含字母、數位或底線。 如需詳細資訊,請參閱 WPF XAML Namescopes。
Name 是在中繼資料 () IsAnimationProhibited true
中無法產生動畫效果的相依性屬性之一,因為名稱本身對於以動畫為目標很重要。 資料系結 Name 是技術上可行的,但這是極不常見的案例,因為資料系結 Name 無法提供屬性的主要用途:為程式碼後置提供識別碼連接點。
相依性屬性資訊
識別碼欄位 | NameProperty |
設定為 的中繼資料屬性 true |
IsAnimationProhibited |