Ответ 1
Просто установите Padding на ноль в TabControl:
<TabControl Margin="10" Padding="0">
Стиль по умолчанию для TabControl устанавливает Padding 4 и связывает маржу на хосте контента с Padding на TabControl.
Я использую класс 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>
Скриншот:
Я бы хотел избавиться от этого поля (уменьшить его до нуля), но я бы предпочел не полностью заменять шаблоны или что-то подобное.
Есть ли простой способ сделать это очень целенаправленно?
Просто установите Padding на ноль в TabControl:
<TabControl Margin="10" Padding="0">
Стиль по умолчанию для TabControl устанавливает Padding 4 и связывает маржу на хосте контента с Padding на TabControl.
Если вы хотите, чтобы розовая коробка была полностью развернута до черной граничной линии без белого между ними, есть простой способ, который не включал создание собственного шаблона управления.
Стиль по умолчанию для TabItem имеет разницу в 4 вокруг контент-презентатора. Быстрый способ компенсировать это - сделать границу элемента управления внутри TabItem -4.
<TabItem>
<Grid Margin="-4">
</Grid>
<TabItem>
Напишите свой собственный контрольный шаблон для TabItems, см. Пример элемента управления TabItem
Установите поле для TabItem вместо Tab
<TabItem Margin="0,0,0,0"/>
Задайте для поля TabItem значение 0, это переопределит маржу по умолчанию и будет работать согласно вашим требованиям.