我已經看到了一些如何用winforms做這個的例子,但由於wpf的TabItem沒有控件的定義,所以一直無法讓它在wpf中工作。這裏是我現在使用的代碼,這是行不通的。我如何循環選項卡控件(wpf)中的所有控件?
TabItem ti = rep1Tab;
var controls = ti.Controls;
foreach (var control in controls)
{
//do stuff
}
我已經看到了一些如何用winforms做這個的例子,但由於wpf的TabItem沒有控件的定義,所以一直無法讓它在wpf中工作。這裏是我現在使用的代碼,這是行不通的。我如何循環選項卡控件(wpf)中的所有控件?
TabItem ti = rep1Tab;
var controls = ti.Controls;
foreach (var control in controls)
{
//do stuff
}
一個TabItem通常包含一個容器控件,如默認的網格。您可以嘗試循環訪問該容器控件的子項。
foreach (UIElement element in Grid1.Children)
{
//process element
}
如果你有訪問特定控件的屬性,您必須將元素
foreach (UIElement element in Grid1.Children)
{
//process element
Button btn = (Button)element;
btn.Content = "Hello World";
}
轉換
如果你想要邏輯孩子,你使用LogicalTreeHelper.GetChilren()。 如果你想要視覺兒童,你使用VisualTreeHelper.GetChild()與VisualTreeHelper.GetChildrenCount()