日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

WPF在CS代碼中應(yīng)用FindName方法

 風中Robin 2012-06-23

如果在窗體XAML代碼中定義了下面的內(nèi)容:

<Button Name="mybutton"></Button>

則可以在窗體CS代碼中通過FindName方法查找到此按鈕對象,如果此按鈕在窗體的多個容器的更深層次,也可以通過此方法找到按鈕對象,F(xiàn)indName方法的使用如下:

Button btn = FindName("mybutton") as Button;

MessageBox.Show(btn.Name);

如果在窗體的CS代碼中動態(tài)添加按鈕并為按鈕設(shè)置Name屬性,此時在窗體中通過FindName方法是不可以找到此按鈕對象的,代碼如下:

Button btns = FindName("btns") as Button;

MessageBox.Show(btns.Name);

執(zhí)行的結(jié)果為btns對象一直為空,也就是使用FindName方法沒有找到動態(tài)添加的Button按鈕。

下面引用來自MSDN的一段話:

若要在初始的加載和處理之后向元素樹添加任何元素,都必須對定義名稱范圍的類調(diào)用相應(yīng)的 RegisterName 的實現(xiàn)。否則,無法通過 FindName 等方法按名稱引用添加的對象。僅設(shè)置 Name 屬性(或x:Name 屬性)不會將該名稱注冊到任何名稱范圍中。將命名的元素添加到具有名稱范圍的元素樹中也不會將此名稱注冊到名稱范圍中。盡管名稱范圍可以嵌套,但通常您應(yīng)該將名稱注冊到根元素上存在的名稱范圍中,這樣您的名稱范圍位置便可與在等效的加載 XAML 頁中可能已創(chuàng)建的名稱范圍并列。 應(yīng)用程序開發(fā)人員最常用的方案是使用 RegisterName 將名稱注冊到當前根元素的名稱范圍中。RegisterName 是查找將作為動畫運行的演示圖板的一種重要方案的一部分。

現(xiàn)在我們已經(jīng)知道了,要實現(xiàn)在窗體中通過FindName方法查找按鈕對象,首先要使用RegisterName方法為按鈕注冊名稱,在注冊名稱后即可以使用FindName方法查找到指定的按鈕對象,示例代碼如下:

this.RegisterName("btns", btn);

Button btns = FindName("btns") as Button;

MessageBox.Show(btns.Name);

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多