我知道它的晚了,但我必须今天解决这个问题,所以在这里。
基本上,您需要为选项卡控件创建自己的控件模板,并使用不同的面板来包含选项卡项目。
这是使用WrapPanel的简化示例。
<Style TargetType="TabControl" x:Key="MyTabControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabControl">
<Grid SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<WrapPanel x:Name="HeaderPanel" HorizontalAlignment="Center" VerticalAlignment="Top" IsItemsHost="true"
Grid.Row="0" KeyboardNavigation.TabIndex="1" />
<ContentPresenter Grid.Row="1" x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="10" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
然后用这个如下
<TabControl Style="{StaticResource MyTabControl}" ....
您可以下载该控件模板样本here
来源
2010-07-19 17:10:09
bic
我真正体会到了负没有这么多评论。我刚刚与Microsoft团队成员(包括混合团队的成员)进行了一天的配对编程,其中我们讨论了WPF控件的不寻常特性。我们还通过在混合中编辑控件模板的副本来覆盖扩展器控件的行为,然后将编辑的模板设置为该控件的默认模板。如果选项卡控件的这种行为是硬编码的,那么它与Microsoft发布的指南是相反的。 – 2010-05-12 01:54:54