27

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>

截屏:

TabItem 内容周围的边距

我想摆脱这个边距(将它减少到零),但我不希望完全替换模板或类似的重物。

有没有一种简单的方法可以非常有针对性地做到这一点?

4

4 回答 4

53

只需在 TabControl 上将 Padding 设置为零:

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

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

于 2010-08-03T01:43:56.937 回答
4

如果您想让粉红色框一直扩展到黑色边框线,中间没有白色,有一种简单的方法,不需要制作您自己的控件模板。

TabItem 的默认样式在内容展示器周围有 4 的边距。弥补这一点的一种快速方法是使 TabItem 内的控件的边距为 -4。

   <TabItem>
     <Grid Margin="-4">
     </Grid>
   <TabItem>
于 2011-10-14T02:59:39.050 回答
1

为 TabItems 编写自己的控件模板,请参阅TabItem ControlTemplate 示例

于 2010-08-02T17:21:58.533 回答
0

为 TabItem 而不是 Tab 设置边距

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

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

于 2012-06-03T14:45:59.977 回答