1

WPF TabControl で TabItems の場所を変更したいと考えています。プロパティ「タブストリップの配置」があることは知っていますが、これでは「上」、「左」、「右」、「下」のオプションしか使用できません。次のように、タブコントロールの上部にタブストリップを配置したいと思います。

 -----------------------------------
 |                                 |
 |   TabItem1       TabItem2       |
 |                                 |
 |                                 |
 |                                 |

しかし、私はそれを行う方法を見つけることができませんでした。

TabItems は、異なるコンテンツ間で切り替える必要があります。

ありがとう、

4

1 に答える 1

2

これは、ここから取得できる tabControl のデフォルト テンプレートをオーバーライドすることで実現できます。

必要に応じてテンプレートを少し変更しました-

       <Style TargetType="{x:Type TabControl}"
               BasedOn="{StaticResource {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>
                   <Border Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
                           Grid.Row="0"
                           BorderThickness="1">
                      <TabPanel x:Name="HeaderPanel"
                                IsItemsHost="True"
                                Margin="0,10,0,0"
                                Panel.ZIndex="1"
                                KeyboardNavigation.TabIndex="1"
                                Background="Transparent" />
                   </Border>
                  <Border x:Name="Border"
                          Grid.Row="1"
                          BorderThickness="1"
                          KeyboardNavigation.TabNavigation="Local"
                          KeyboardNavigation.DirectionalNavigation="Contained"
                          KeyboardNavigation.TabIndex="2"
                          Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">
                    <ContentPresenter x:Name="PART_SelectedContentHost"
                                      Margin="4"
                                      ContentSource="SelectedContent" />
                  </Border>
                </Grid>
              </ControlTemplate>
            </Setter.Value>
          </Setter>
        </Style>

このスタイルを Window Resources に入れれば、準備完了です。それは私にこの外観を与えます(これがあなたが望むものであることを願っています)-

ここに画像の説明を入力

于 2013-01-27T14:48:58.380 に答える