WPF - 如何查找控件所在的选项卡

时间:2011-01-31 16:47:47

标签: wpf wpf-controls

我是WPF的新手,不知道如何做到这一点。我在选项卡控件上的选项卡项中有一个文本框。我如何以编程方式(C#)确定哪个选项卡项是此文本框的父项?我还想确定哪个选项卡控件是选项卡项的父级。

非常感谢。

4 个答案:

答案 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);