我希望在第一个标签项之前的TabControl上有我公司的名称。
我试图在TabControl中直接添加TextBlock。但似乎在第一个TabItem之前添加了一个没有任何标题的新TabItem,并且在新创建的TabItem中我得到了我公司的名称。
以下是代码:
<TabControl>
<TextBlock Text="MyCompanyName" />
<TabItem Header="FirstTabITem" />
<TabItem Header="SecondTabITem" />
</TabControl>
这是WPF的限制吗?
答案 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>