【问题标题】:Retrieve Tab Header content检索选项卡标题内容
【发布时间】:2011-10-25 00:34:12
【问题描述】:

谁能帮我想办法在 WPF 中检索选项卡标题的内容?

我想要的只是标题中的文本,因此我可以将其分配给其他变量,但似乎没有任何方法可以获取它。

我对 WPF 很陌生.. 但是过去一个小时左右在谷歌上搜索这个问题并没有返回任何有用的信息。

谢谢

【问题讨论】:

    标签: c# wpf silverlight xaml tabitem


    【解决方案1】:

    XAML:

    <TabControl x:Name="tabControl">
                <TabItem>
                    <TabItem.Header>
                        <TextBlock>SomeText</TextBlock>
                    </TabItem.Header>
                </TabItem>
            </TabControl>
    

    访问文本:

    ((System.Windows.Controls.TextBlock)(((System.Windows.Controls.HeaderedContentControl)(this.tabControl.Items[0])).Header)).Text
    

    要访问内容控件:

     (System.Windows.Controls.HeaderedContentControl)(this.tabControl.Items[0])).Header)
    

    【讨论】:

    • 喜欢,谁会这样设置标题? (嗯,可能有些人会,但可能性不大)
    • 或者您可以在 TextBlock x:Name="tbTC1" 上放置并命名,然后通过 tbTC1.text 访问它。 Sllev,我喜欢你的回答,因为它很好地涵盖了 tabcontrol 和 headers。
    • H.B.我经常这样设置标题。它允许格式化(例如换行符)和对齐你没有得到的行。
    • @BalamBalam:这是有道理的,但如果你要做的只是限于上面发布的代码,那将没有多大意义。 (另外:不要忘记@-sign 否则不会通知人们)
    • 是的,谢谢。我将 Header 转换为 TextBlock。一开始很难看清 Header 到底是什么。
    【解决方案2】:

    你知道casting and such 是如何工作的,对吧?

    <TabControl>
        <TabItem Name="_tabItem1" Header="MyHeader"/>
    </TabControl>
    
    //Header is an object and hence needs to be casted for retrieval as string
    string headerText = (string)_tabItem1.Header;
    MessageBox.Show(headerText);
    

    TabItem.Header 可以是任何东西,甚至是复杂的控件,因此如果您自己没有将其设置为字符串,您也无法将其作为字符串检索。

    【讨论】:

    • 我明白了。这有帮助。我只需要将 Header 转换为 TextBlock 对象。谢谢!
    • @Luke:很高兴有帮助! (您可以点击左侧的复选标记accept我的答案)
    【解决方案3】:

    使用TabItem.Header 例如以下代码会将第一个选项卡的header 设置为“新标题”:

    (tabControl1.Items[0] as TabItem).Header="New header";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 2020-01-25
      • 1970-01-01
      相关资源
      最近更新 更多