2010-05-20 69 views
0

對不起,有一個潛在的愚蠢問題,我對此仍然陌生。我非常感謝你的幫助。 參考Get a Windows Forms control by name in C# 但我沒有「this.Controls」可用。有什麼我在這裏失蹤?找不到this.Controls - 我錯過了什麼?

換句話說,當我輸入「this」。和Visual Studio填充選項列表,沒有「控件」選項。

+0

代碼上下文中的「this」是什麼? – 2010-05-20 14:57:59

+1

您鏈接的問題是針對Winforms,而您正在使用WPF。 – Powerlord 2010-05-20 14:58:24

+0

有些背景會有所幫助。這是什麼」? – 2010-05-20 14:58:59

回答

1

如果您正在尋找通過無論什麼原因,控制迭代,在你的窗口類,你可以通過LayoutRoot的兒童(如)

foreach (object o in this.LayoutRoot.Children) 
    { 
     MessageBox.Show(o.GetType().Name); 
    } 
迭代

請記住,孩子們也可以包含孩子,所以你需要根據需要深入研究這些孩子。

1

你給的鏈接是Winforms,你正在尋找一種WPF方式來做到這一點,這是不同的。

3

在WPF中,你應該嘗試this.FindName(string name)

Button b = (Button)this.FindName("button1");