在标准的WinForms开发我会做到以下几点:如何获得一个列表控件在一个组框在WPF
foreach (Control in groupBox1.Controls)
{
MessageBox.Show(c.Name);
}
如何做一个人做在WPF?我在GroupBox内部有一个Grid和一些网格中的控件(按钮等),但似乎无法弄清楚如何获得每个控件。
在标准的WinForms开发我会做到以下几点:如何获得一个列表控件在一个组框在WPF
foreach (Control in groupBox1.Controls)
{
MessageBox.Show(c.Name);
}
如何做一个人做在WPF?我在GroupBox内部有一个Grid和一些网格中的控件(按钮等),但似乎无法弄清楚如何获得每个控件。
正如MSDN建议的,您将需要迭代控件作为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
而不是.Controls
,你会寻找.Children
属性。
此外,这将只返回一阶子女。如果你真的想要GroupBox
的所有后代,你会想递归查找所有控件的所有子元素。
-1这个答案是错的。 GroupBox不包含Children属性。 – virious 2013-11-22 11:07:47
简单的代码会是这样的
foreach (Control control in Grid.Children)
{
//Code here for what you want to do.
}
我应该使用Visual而不是Control来更精确.. – Derar 2009-10-01 18:21:44