【问题标题】:WPF - How to finding the tab a control is onWPF - 如何找到控件所在的选项卡
【发布时间】:2011-01-31 16:47:47
【问题描述】:

我对 WPF 很陌生,不知道该怎么做。我在选项卡控件的选项卡项中有一个文本框。如何以编程方式 (C#) 确定哪个选项卡项是此文本框的父项?我还想确定哪个选项卡控件是选项卡项的父项。

非常感谢。

【问题讨论】:

    标签: wpf wpf-controls


    【解决方案1】:

    TabItem.Parent 将提供TabItem 的逻辑父元素;这将是关联的TabControl。您可以通过TabItem 对任何控件使用相同的方法。

    ((FrameworkElement)myTextBox.Parent).Parent;
    

    如果项目在树中更深并且其深度变得未知,您将需要开始以递归方式处理它。

    【讨论】:

      【解决方案2】:

      您可以使用FrameworkElement.Parent 在 WPF 中向上遍历控件的层次结构。这应该让您(递归地)向上走,直到找到 TabItem,然后从那里走到 TabControl。

      【讨论】:

        【解决方案3】:

        我也是 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;
           }
        

        【讨论】:

          【解决方案4】:

          这是查找父控件的通用方法:How can I find WPF controls by name or type?

          你可以这样称呼它:

          TabItem owner = UIHelper.FindVisualParent<TabItem>(myTextBox);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-10-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多