0
如何獲得控件添加在窗口控件中的指定行和列Grid(不是gridview或datagrid)?在C中#如何在窗口控件Grid中的指定行和列處添加控件?
假設我們知道控件所在的行和列,如何通過網格行和列來控制?
感謝
如何獲得控件添加在窗口控件中的指定行和列Grid(不是gridview或datagrid)?在C中#如何在窗口控件Grid中的指定行和列處添加控件?
假設我們知道控件所在的行和列,如何通過網格行和列來控制?
感謝
嗯,你可以使用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 <UIElement>,但我仍然覺得這很令人難以置信。
謝謝。 我可以使用命名空間System.Linq或...添加嗎? – user302933 2010-04-29 20:56:02
我有System.Linq,但仍然有與grid.children.Where 有什麼我想念請好嗎?謝謝 – user302933 2010-04-29 21:11:12
System.Windows.Controls.UIElementCollection'不包含'Where'的定義並且沒有擴展方法'Where'接受'System.Windows.Controls.UIElementCollection'類型的第一個參數 – user302933 2010-04-29 21:13:27