WPF TabControl показывать только вкладки без контента - PullRequest
0 голосов
/ 18 мая 2018

Идея состоит в том, чтобы просто использовать вкладки (заголовки), чтобы сделать выбор.Так что «контент» не нужен.И я не могу найти простой способ сделать содержимое «пустым» или занять нулевую высоту.

Так что визуально вы должны быть представлены только с вкладками, ничего больше.

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

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

Здесь - это способ создания пользовательских кнопок в WPF.

И здесь - это способ создания кнопки в форме вкладки.

0 голосов
/ 18 мая 2018

Чтобы скрыть содержимое вкладок, вы можете переопределить ContentTemplate элемента TabControl.

<TabControl>
    <TabControl.ContentTemplate>
         <DataTemplate/>
    </TabControl.ContentTemplate>
</TabControl>
0 голосов
/ 18 мая 2018

Не могли бы вы настроить ControlTemplate из примера MSDN и удалить выбранный контент: https://msdn.microsoft.com/en-us/library/ms754137(v=vs.90).aspx

Так что это станет примерно так:

<Style  TargetType="{x:Type TabControl}">
  <Setter Property="OverridesDefaultStyle" Value="True" />
  <Setter Property="SnapsToDevicePixels" Value="True" />
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type TabControl}">
        <Grid KeyboardNavigation.TabNavigation="Local">
          <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
          </Grid.RowDefinitions>
          <TabPanel 
            Name="HeaderPanel"
            Grid.Row="0"
            Panel.ZIndex="1" 
            Margin="0,0,4,-1" 
            IsItemsHost="True"
            KeyboardNavigation.TabIndex="1"
            Background="Transparent" />
        </Grid>
        <ControlTemplate.Triggers>
          <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>
...