在第一个tabitem wpf之前添加一个文本块

时间:2013-12-26 13:29:20

标签: c# wpf xaml

我希望在第一个标签项之前的TabControl上有我公司的名称。

我试图在TabControl中直接添加TextBlock。但似乎在第一个TabItem之前添加了一个没有任何标题的新TabItem,并且在新创建的TabItem中我得到了我公司的名称。

以下是代码:

<TabControl>
    <TextBlock Text="MyCompanyName" />
    <TabItem Header="FirstTabITem" />
    <TabItem Header="SecondTabITem" />
</TabControl>

这是WPF的限制吗?

3 个答案:

答案 0 :(得分:3)

我相信您要做的是覆盖默认<TabPanel>TabControl.Template周围的XAML。我过去曾经这样做过一次并没有太糟糕。

如果您有Blend,则可以轻松创建要修改的TabControl.Template的副本,或者您可以找到示例MSDN模板here并从中进行操作。

如果您使用的是MSDN示例模板,只需将<TabPanel>包含在其他内容中,例如DockPanel,然后添加一个带有您公司名称的<TextBlock>

<Style TargetType="{x:Type TabControl}">

  ...

  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type TabControl}">
        <Grid KeyboardNavigation.TabNavigation="Local">
          <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
          </Grid.RowDefinitions>
          <DockPanel Grid.Row="0">
              <TextBlock Text="Company Name" DockPanel.Dock="Left" />
              <TabPanel Name="HeaderPanel" IsItemsHost="True" ... />
          </DockPanel>

          ...

        </Grid>
      </ControlTemplate>
    </Setter.Value>
 </Style>

答案 1 :(得分:0)

使用它可能对你有所帮助

        <TabItem Header="My Company Name" IsEnabled="False"/>
        <TabItem Header="FirstTabITem" />
        <TabItem Header="SecondTabITem" />
    </TabControl>

答案 2 :(得分:0)

编辑下面给出的第一个标签项的样式。

 <TabControl Margin="20">
        <TabItem IsEnabled="False" >
            <TabItem.Style>
                <Style TargetType="TabItem">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <TextBlock Text="My Company" Margin="0,0,5,0"/>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </TabItem.Style>
        </TabItem>
    <TabItem Header="FirstTabITem" IsSelected="True"/>
    <TabItem Header="SecondTabITem" />
  </TabControl>