Подтвердить что ты не робот

Как удалить поле по умолчанию для содержимого TabItem?

Я использую класс TabControl в WPF, и я заметил, что содержимое каждого TabItem имеет по умолчанию по умолчанию 4 пикселя со всех сторон.

Пример кода:

<Window x:Class="TabControlPadding.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
  <Grid>
    <TabControl Margin="10">
      <TabItem Header="Tab 1">
        <Grid Background="Pink"/>
      </TabItem>
      <TabItem Header="Tab 2">
        <Grid Background="LightBlue"/>
      </TabItem>
    </TabControl>
  </Grid>
</Window>

Скриншот:

The margin around a TabItem's content

Я бы хотел избавиться от этого поля (уменьшить его до нуля), но я бы предпочел не полностью заменять шаблоны или что-то подобное.

Есть ли простой способ сделать это очень целенаправленно?

4b9b3361

Ответ 1

Просто установите Padding на ноль в TabControl:

<TabControl Margin="10" Padding="0">

Стиль по умолчанию для TabControl устанавливает Padding 4 и связывает маржу на хосте контента с Padding на TabControl.

Ответ 2

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

Стиль по умолчанию для TabItem имеет разницу в 4 вокруг контент-презентатора. Быстрый способ компенсировать это - сделать границу элемента управления внутри TabItem -4.

   <TabItem>
     <Grid Margin="-4">
     </Grid>
   <TabItem>

Ответ 4

Установите поле для TabItem вместо Tab

    <TabItem Margin="0,0,0,0"/>

Задайте для поля TabItem значение 0, это переопределит маржу по умолчанию и будет работать согласно вашим требованиям.