如何删除TabItem内容的默认边距?

时间:2010-08-02 16:53:22

标签: wpf tabcontrol margin tabitem

我在WPF中使用TabControl类,我注意到每个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 个答案:

答案 0 :(得分:43)

在TabControl上将Padding设置为零:

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

TabControl的默认样式将Padding设置为4,并将内容主机上的Margin绑定到TabControl上的Padding。

答案 1 :(得分:4)

如果你想让粉红色的盒子一直扩展到黑色边框线而中间没有白色,那么有一种简单的方法就是不需要制作你自己的控制模板。

TabItem的默认样式在内容展示者周围的边距为4。补偿这一点的一种快速方法是在TabItem -4中创建控件的边距。

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

答案 2 :(得分:1)

为TabItem编写自己的controltemplate,请参阅TabItem ControlTemplate Example

答案 3 :(得分:0)

设置TabItem的边距而不是Tab

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

将TabItem的边距设置为0,这将覆盖默认边距并根据您的要求工作