Держать TabItems в TabControl от изменения положения? - PullRequest
2 голосов
/ 11 мая 2010

В WPF, есть ли простой способ остановить перемещение TabItems в TabControl при изменении выбранного TabItem? Таким образом, нажатие на элемент TabItem будет просто отображать его содержимое, а не изменять положение элементов TabItem, как это обычно делается (путем перемещения выбранного элемента TabItem в нижний ряд вкладок, если его там еще не было).

Редактировать: Чтобы уточнить, я хочу, чтобы вкладки отображались в нескольких строках, я просто не хочу, чтобы заголовки вкладок переставлялись, когда выбран элемент TabItem из строки, отличной от нижней строки. Мне бы хотелось, чтобы коллекция заголовков оставалась полностью статичной, но чтобы содержимое этого TabItem по-прежнему отображалось при щелчке его заголовка.

Спасибо!

Ответы [ 2 ]

5 голосов
/ 19 июля 2010

Я знаю, что уже поздно, но я должен был это выяснить сегодня, так что здесь.

По сути, вам нужно создать свой собственный шаблон элемента управления для элемента управления вкладками и использовать другую панель для размещения элементов вкладки.

Вот упрощенный пример использования 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}" ....

Вы можете загрузить образцы шаблона управления здесь

0 голосов
/ 11 мая 2010

Если у вас есть Blend, вы можете отредактировать копию шаблона для элемента управления вкладками, чтобы удалить это поведение, я верю.

...