很简单,只是楼主你和你楼下的都没想到而已。public void GetGrid(DependencyObject dcy,List<Grid> listgrid = new List<Grid>())
{
DependencyObject d;
foreach (var c in LogicalTreeHelper.GetChildren(dcy))
{
d = c as DependencyObject;
if (d != null)
{
Grid g = d as Grid;
if (g != null)
{
listgrid.Add(g);
}
GetGrid(d,listgrid);
}
}
}
private void gird1_MouseDown(object sender, MouseButtonEventArgs e)
{
var listgrid = GetGrid(this);
listgrid.ForEach(x =>MessageBox.Show(x.Name));
}
{
DependencyObject d;
foreach (var c in LogicalTreeHelper.GetChildren(dcy))
{
d = c as DependencyObject;
if (d != null)
{
Grid g = d as Grid;
if (g != null)
{
listgrid.Add(g);
}
GetGrid(d,listgrid);
}
}
}
private void gird1_MouseDown(object sender, MouseButtonEventArgs e)
{
var listgrid = GetGrid(this);
listgrid.ForEach(x =>MessageBox.Show(x.Name));
}
public List<Grid> GetChildObjects<Grid>(DependencyObject obj)
{
DependencyObject child = null;
List<Grid> childList = new List<Grid>(); for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)
{
child = VisualTreeHelper.GetChild(obj, i);
if (child is Grid)
{
childList.Add(child);
}
childList.AddRange(GetChildObjects<Grid>(child));
}
return childList;
}
{
DependencyObject d;
foreach (var c in LogicalTreeHelper.GetChildren(dcy))
{
d = c as DependencyObject;
if (d != null)
{
Grid g = d as Grid;
if (g != null)
{
listgrid.Add(g);
}
GetGrid(d,listgrid);
}
}
}
private void gird1_MouseDown(object sender, MouseButtonEventArgs e)
{
var listgrid = new List<Grid>();
GetGrid(this,listgrid);
listgrid.ForEach(x =>MessageBox.Show(x.Name));
}
{
DependencyObject d;
foreach (var c in LogicalTreeHelper.GetChildren(dcy))
{
d = c as DependencyObject;
if (d != null)
{
Grid g = d as Grid;
if (g != null)
{
listgrid.Add(g);
}
GetGrid(d,listgrid);
}
}
}
private void gird1_MouseDown(object sender, MouseButtonEventArgs e)
{
var listgrid = new List<Grid>();
GetGrid(this,listgrid);
listgrid.ForEach(x =>MessageBox.Show(x.Name));
}谢谢,还是8楼的方法好些