Как добавить поля на вкладки WPF TabControl? - PullRequest
3 голосов
/ 26 февраля 2012

Я хотел бы добавить поле слева от WPF TabControl s TabItem s.Если я использую простой Margin="4" подход, то поле применяется к каждому TabItem, вместо этого я хочу переместить весь контейнер элемента вкладки немного вправо.Например, по умолчанию выглядит, что вкладки расположены на 2 пикселя вправо, я хочу увеличить их, чтобы можно было разместить кнопку слева от вкладок.

Ответы [ 2 ]

8 голосов
/ 26 февраля 2012

Вам потребуется определить новый шаблон для 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 голос
/ 26 февраля 2012

Оберните TabControl на панели (или сетке, или границе) и установите свойство Margin панели (или сетки, или границы).

...