2014-11-05 1 views
4

Как упоминалось в заголовке, я хочу изменить заголовок моего TabControl для прокрутки.Сделать заголовки TabControl прокручиваемыми в WPF

Причина: У меня слишком много tabItems, и упаковка не является лучшим решением в моем случае. поэтому я хочу, чтобы изменить его от:

Wrapping behaviour

Чтобы что-то вроде этого (полосы прокрутки, обозначенной стрелки):

scrolling behaviour

Может кто-нибудь мне помочь и показать, как это сделать? (Я использую WPF)

+0

См [WPF: TabControl серии - Часть 1: Цвета и размеры] (HTTP: // WWW. blogs.intuidev.com/post/2010/post/2010/01/25/TabControlStyling_PartOne.aspx). Часть 3, где этот блог говорит о проблеме прокрутки. – LarsTech

+0

@LarsTech это не совсем то, что я хочу, нет полосы прокрутки, и его решение сложное! Спасибо за ваш комментарий – NTinkicht

+1

Существует также [WPF Single Row Tab Control] (http://rickdoes.net/post/2009/11/06/WPF-Single-Row-Tab-Control.aspx) – LarsTech

ответ

10

Изменение TabControl.Template к чему-то простому, как это, кажется, работает для меня

<TabControl ...> 
    <TabControl.Template> 
     <ControlTemplate TargetType="{x:Type TabControl}"> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto"/> 
        <RowDefinition/> 
       </Grid.RowDefinitions> 
       <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled"> 
        <TabPanel x:Name="HeaderPanel" IsItemsHost="True" Margin="0,4,0,0"/> 
       </ScrollViewer> 
       <ContentPresenter x:Name="PART_SelectedContentHost" Margin="4" ContentSource="SelectedContent" Grid.Row="1"/> 
      </Grid> 
     </ControlTemplate> 
    </TabControl.Template> 
</TabControl>