вкладка TabControl внизу в WPF

1

Я использую WPF (С#).

Я хочу, чтобы вкладка TabControls располагалась внизу. Для этого я использую свойство: TabStripPlacement = "Bottom".

Однако это свойство не работает из-за моего стиля:

<Grid>
 <Grid.Resources>
   <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="Auto"/>
             </Grid.RowDefinitions>

             <TabPanel IsItemsHost="True" />
             <ContentPresenter Grid.Row="1" ContentSource="SelectedContent"/>
           </Grid>
          </ControlTemplate>
        </Setter.Value>
      </Setter>
   </Style>
 </Grid.Resources>

 <TabControl TabStripPlacement="Bottom" >
     <TabItem Header="tab1">fff</TabItem>
     <TabItem Header="tab2"></TabItem>
     <TabItem Header="tab3"></TabItem>
 </TabControl>

</Grid>

Скажите, пожалуйста, как я могу исправить вкладки TabControls, расположенные внизу?

Теги:
wpf
tabs
tabcontrol

2 ответа

2
Лучший ответ

Переместите Grid.Row="1" в элемент <TabPanel...>:

<TabPanel Grid.Row="1" IsItemsHost="True" />
<ContentPresenter ContentSource="SelectedContent"/>

Затем вкладки будут показаны ниже содержимого.

  • 1
    fmunkert, спасибо!
2

Обновите свой шаблон управления следующим образом:

     <Grid>
        <Grid.Resources>
            <Style TargetType="{x:Type TabControl}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type TabControl}">
                            <Grid KeyboardNavigation.TabNavigation="Local">
                                <Grid.RowDefinitions>
                                    <RowDefinition />
                                    <RowDefinition Height="Auto"/>
                                </Grid.RowDefinitions>
                                <ContentPresenter ContentSource="SelectedContent"/>
                                <TabPanel  Grid.Row="1" IsItemsHost="True" />

                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Grid.Resources>

        <TabControl TabStripPlacement="Bottom" >
            <TabItem Header="tab1">fff</TabItem>
            <TabItem Header="tab2"></TabItem>
            <TabItem Header="tab3"></TabItem>
        </TabControl>

    </Grid>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню