【问题标题】:How to remove the default margin on the content of a TabItem?如何删除 TabItem 内容的默认边距?
【发布时间】:2013-04-28 07:57:59
【问题描述】:

我在 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>

截图:

我想去掉这个边距(减少到零),但我不希望完全替换模板或类似的东西。

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

【问题讨论】:

    标签: wpf tabcontrol margin tabitem


    【解决方案1】:

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

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

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

    【讨论】:

    • 哈哈!天才!我在那里搞乱了 TabItems。 :)
    • 特别是绑定到选项卡控件的填充。
    • 为什么这个奇怪的默认填充甚至存在?
    【解决方案2】:

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

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

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

    【讨论】:

    • 我试图减少标题文本中的边距/填充,这个技巧使它成为可能!
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      为 TabItem 设置边距而不是 Tab

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

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

      【讨论】:

        猜你喜欢
        • 2015-06-30
        • 2016-11-19
        • 2020-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-15
        • 1970-01-01
        相关资源
        最近更新 更多