Интервал элемента управления вкладкой WPF между заголовками

По умолчанию WPF Tabcontrol размещает заголовки вкладок рядом друг с другом без пустого пространства между ними. Что, если бы я хотел указать пробел между заголовками? Нужно ли мне определять для этого шаблон управления? Я относительно новичок в WFP, и любая помощь приветствуется.

Спасибо


person Bojin Li    schedule 29.09.2009    source источник


Ответы (2)


Я считаю, что вам нужно будет определить шаблон настраиваемого элемента управления для TabItem, возможно, даже один для TabControl. Вот пример TabItem, в котором для некоторого разделения используется разделитель.

<Style
    x:Key="SpacedTab"
    TargetType="{x:Type TabItem}">
    <Setter
        Property="Template">
        <Setter.Value>
            <ControlTemplate
                TargetType="{x:Type TabItem}">
                <Border
                    x:Name="Spacer"
                    Width="Auto"
                    Height="Auto"
                    Padding="0 0 5 0"
                    Margin="0 0 0 0"
                    BorderBrush="Transparent"
                    BorderThickness="0">
                    <Border
                        x:Name="Border"
                        MinWidth="150"
                        Width="Auto"
                        Height="30"
                        Background="Gray"
                        BorderBrush="DarkGray"
                        BorderThickness="0,0,0,0"
                        CornerRadius="6,6,0,0"
                        Cursor="Hand"
                        VerticalAlignment="Bottom">
                        <ContentPresenter
                            x:Name="ContentSite"
                            TextElement.FontSize="10pt"
                            TextElement.FontFamily="Arial"
                            TextElement.Foreground="Black"
                            VerticalAlignment="Center"
                            HorizontalAlignment="Center"
                            ContentSource="Header"
                            Margin="8,3,8,3"
                            Width="Auto"
                            Height="Auto" />
                    </Border>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Надеюсь, это толчок в правильном направлении; вам все равно нужно будет добавить это как ресурс стиля и ссылаться на него из TabControl -> TabItem.

person Jacob    schedule 29.09.2009
comment
Хорошо, попробую. Спасибо - person Bojin Li; 01.10.2009

Добавить пространство легко, сделав это в дизайнере. Выберите вкладку, которую хотите переместить, начиная с самой правой вкладки. Затем удерживайте ctrl и с помощью клавиши со стрелкой вправо переместите вкладку вправо. Проделайте то же самое с остальными вкладками. Затем вы можете вручную настроить маржу в коде xaml.

person lymber    schedule 28.05.2013
comment
Не нужен дизайнер. Кумулятивные поля в коде также работают, поэтому [tab] space [tab] [tab] space [tab] будет иметь левое и правое поля 0 для первой вкладки, затем x для вторых двух вкладок и 2x для последней вкладки, где x - ширина пространства - person byteit101; 10.06.2015