如何为WPF TabControl标签添加边距?

5
我想要在WPF的TabControl中的TabItems左侧添加一些边距。如果采用直接的Margin="4"方法,那么将会应用于每个TabItem,而我想把整个TabItem容器向右移动一点。例如,默认情况下选项卡向右偏移2个像素,我想增加它以便在选项卡的左侧放置一个按钮。
2个回答

8
你需要为TabControl定义一个新模板。
请参阅MSDN上的示例模板
如果您使用此模板,可以更改HeaderPanel的边距以实现所需效果。
如果您需要查看实际使用的模板,可以使用Blend提取模板。然后您可以修改它。
另一种选择是派生自己的TabControl并在代码后台中修改边距,例如:
public class MyTabControl : TabControl
{
    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();

        var panel = Template.FindName("HeaderPanel", this) as FrameworkElement;

        if(panel != null)
        {
            panel.Margin = new Thickness(20,2,2,2);
        }
    }
}

1
将TabControl包装在一个面板(或网格、边框)中,并设置面板(或网格、边框)的Margin属性。

那样做不行,因为它移动的是整个 TabControl,而不仅仅是选项卡。我想保留选项卡内容的位置,只移动选项卡。 - Tower

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接