C# 在第一个tabitem wpf之前添加一个textblock

C# 在第一个tabitem wpf之前添加一个textblock,c#,wpf,xaml,C#,Wpf,Xaml,我想在第一个选项卡项之前的选项卡控件上显示我公司的名称 我试图直接在TabControl中添加一个TextBlock。但看起来好像在第一个TabItem之前添加了一个没有任何标题的新TabItem,在新创建的TabItem中,我得到了我公司的名称 代码如下: <TabControl> <TextBlock Text="MyCompanyName" /> <TabItem Header="FirstTabITem" /> <TabI

我想在第一个选项卡项之前的选项卡控件上显示我公司的名称

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

代码如下:

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

这是WPF的限制吗?

使用它可能会对您有所帮助


使用此选项可能会对您有所帮助


使用此选项可能会对您有所帮助


使用此选项可能会对您有所帮助


我相信您要做的是覆盖默认
选项卡控件.Template
中围绕
的XAML。我以前也做过一次,也不算太糟

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

如果您使用MSDN示例模板,只需将
包装在其他文件中,例如
DockPanel
,然后添加一个带有公司名称的

<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>

...
...

我相信您要做的是覆盖默认
选项卡控件.Template
中围绕
的XAML。我以前也做过一次,也不算太糟

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

如果您使用MSDN示例模板,只需将
包装在其他文件中,例如
DockPanel
,然后添加一个带有公司名称的

<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>

...
...

我相信您要做的是覆盖默认
选项卡控件.Template
中围绕
的XAML。我以前也做过一次,也不算太糟

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

如果您使用MSDN示例模板,只需将
包装在其他文件中,例如
DockPanel
,然后添加一个带有公司名称的

<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>

...
...

我相信您要做的是覆盖默认
选项卡控件.Template
中围绕
的XAML。我以前也做过一次,也不算太糟

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

如果您使用MSDN示例模板,只需将
包装在其他文件中,例如
DockPanel
,然后添加一个带有公司名称的

<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>

...
...

编辑第一个选项卡项的样式,如下所示

 <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>

编辑第一个选项卡项的样式,如下所示

 <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>

编辑第一个选项卡项的样式,如下所示

 <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>

编辑第一个选项卡项的样式,如下所示

 <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>


为什么要这样做?这违反了所有的标准和准则。您可以在WPF中执行此操作,但这需要大量的工作,每个使用您的控件的人都会感到困惑。@nvoigt我的选项卡控件是我窗口的根。那么,指定公司名称的最佳地点是什么?我不知道,这是你必须决定的。你必须设计你的窗户。也许你需要一个不同的根,上面是你的公司名称和徽标,下面是选项卡控件?只有你自己可以决定,但是请注意,如果技术方面有问题,那么它可能不打算这样使用。你为什么要这样做?这违反了所有的标准和准则。您可以在WPF中执行此操作,但这需要大量的工作,每个使用您的控件的人都会感到困惑。@nvoigt我的选项卡控件是我窗口的根。那么,指定公司名称的最佳地点是什么?我不知道,这是你必须决定的。你必须去