我知道它的晚了,但我必須今天解決這個問題,所以在這裏。
基本上,您需要爲選項卡控件創建自己的控件模板,並使用不同的面板來包含選項卡項目。
這是使用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