Как удалить поля по умолчанию для содержимого TabItem? - PullRequest
25 голосов
/ 02 августа 2010

Я использую класс 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

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

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

Ответы [ 4 ]

43 голосов
/ 03 августа 2010

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

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

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

4 голосов
/ 14 октября 2011

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

   <TabItem>
     <Grid Margin="-4">
     </Grid>
   <TabItem>
1 голос
/ 02 августа 2010

Напишите свой собственный шаблон управления для TabItems, см. Пример TabItem ControlTemplate

0 голосов
/ 03 июня 2012

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

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

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

...