如何在WPF中获取组框中的控件列表

在标准的WinForms开发中,我将执行以下操作:

foreach (Control in groupBox1.Controls) { MessageBox.Show(c.Name); } 

一个人在WPF中如何做到这一点? 我在GroupBox中有一个Grid和网格中的一些控件(按钮等),但似乎无法弄清楚如何获得每个控件。

正如MSDN建议的那样,您需要将控件作为GroupBox子项进行迭代。 另外,请注意,您通常需要在GroupBox添加一个Grid ,以便能够将新控件添加到该GroupBox 。 所以你需要在GroupBox获取Grid的子GroupBox并迭代它们,如下所示:

 //iterate through the child controls of "grid" int count = VisualTreeHelper.GetChildrenCount(grid); for (int i = 0; i < count; i++) { Visual childVisual = (Visual)VisualTreeHelper.GetChild(grid, i); if (childVisual is TextBox) { //write some logic code } else { } } 

你可能会觉得这很有用: http : //social.msdn.microsoft.com/Forums/en-US/wpf/thread/93ebca8f-2977-4c36-b437-9c82a22266f6

更简单的代码就像是

 foreach (Control control in Grid.Children) { //Code here for what you want to do. } 

而不是.Controls ,你将寻找.Children属性。

此外,这将只返回一阶儿童。 如果您真正想要GroupBox所有后代,您将希望以递归方式查找所有控件的所有子项。