如何为WPF TabControl选项卡添加边距?

时间:2012-02-26 09:42:11

标签: c# wpf tabcontrol

我想在WPF TabControl TabItem的左侧添加一些余量。如果我使用直截了当的Margin="4"方法,则边距将应用于每个TabItem,而我希望将整个标签项容器向右移动一点。例如,默认情况下,选项卡看起来像右边2个像素,我想增加它,以便我可以在选项卡的左侧放置一个按钮。

2 个答案:

答案 0 :(得分:8)

您需要为TabControl定义一个新模板。

请参阅example template on 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 :(得分:1)

将TabControl包裹在面板(或网格或边框)中,并设置面板(或网格或边框)的边距属性。