如何在窗口控件Grid的指定行和列中添加控件?

时间:2010-04-29 19:27:03

标签: c# wpf wpf-controls

如何在窗口控件Grid(而不是gridview或datagrid)的指定行和列中添加控件?在C#

假设我们知道控件所在的行和列,如何通过网格行和列获取控件?

由于

1 个答案:

答案 0 :(得分:1)

嗯,你可以很容易地用LINQ查询来做到这一点:

public IEnumerable<UIElement> GetElementsAtPosition(Grid grid, int row, int column)
{
    return grid.Children.OfType<UIElement>().Where(c => Grid.GetRow(c) == row && Grid.GetColumn(c) == column);
}

这需要返回IEnumerable,因为在给定的行和附近可以存在多个控件。列交叉点。如果您正在进行行/列跨越,这也不是非常可靠(它不会捕获元素从不同的行或列开始并跨越它的情况)。

编辑感谢@wpfwannabe完成此工作所需的正确LINQ运算符。我仍然难以理解UIElementCollection没有实现IEnumerable&lt; UIElement&gt ;.