我是WPF的新手,不知道如何做到这一点。我在选项卡控件上的选项卡项中有一个文本框。我如何以编程方式(C#)确定哪个选项卡项是此文本框的父项?我还想确定哪个选项卡控件是选项卡项的父级。
非常感谢。
答案 0 :(得分:8)
TabItem.Parent将提供TabItem
的逻辑父元素;这将是关联的TabControl
。您可以对TabItem
的任何控件使用相同的方法。
((FrameworkElement)myTextBox.Parent).Parent;
如果项目在树中较深并且其深度未知,则需要以递归方式开始接近它。
答案 1 :(得分:2)
您可以使用FrameworkElement.Parent在WPF中向上走控制的层次结构。这应该让你(递归地)走到你找到TabItem,然后从那里走到TabControl。
答案 2 :(得分:1)
我也是WPF的新手,但是循环搜索怎么样? 例如:
TextBox TB = new TextBox();
TabControl MyTabControl = new TabControl();
// ...
foreach (TabItem ti in MyTabControl.Items)
if (TB.Parent == ti)
{
// textbox is here!
MessageBox.Show(ti.ToString());
break;
}
答案 3 :(得分:0)
以下是查找父控件的通用方法:How can I find WPF controls by name or type?
您可以这样称呼它:
TabItem owner = UIHelper.FindVisualParent<TabItem>(myTextBox);