Как выровнять некоторые вкладки по левому краю, а другие по правому(TabControl в wpf) - PullRequest
2 голосов
/ 13 декабря 2011

У меня есть tabcontrol, и я хочу, чтобы некоторые заголовки tabitem были выровнены по левому краю, а другие - по правому. Как на этом макете скриншот:

http://img269.imageshack.us/img269/8894/tabcontrol.png

Что я уже пробовал:

  • Стили: я могу выровнять табит по правому краю, используя это:

выравнивание wpf tabcontrol strip

Но мне не удалось найти способ смешивать элементы выравнивания по левому и правому краям.

  • Использование двух TabControls: у меня может быть два перекрывающихся TabControls, один с выровненными по левому краю вкладками, другой с выровненными по правому краю вкладками. Трудность состоит в том, чтобы заставить их переключаться. Click или MouseDown не запускаются постоянно, когда пользователь щелкает заголовок вкладки (даже если Ishitvisible = true). SelectionChanged не работает, потому что, если пользователь ранее выбрал вкладку «D» в TabControl 2, то переходит на вкладку «A» и возвращается к «D» - TabControl 2 не знает, что выбор изменился.

На данный момент у меня нет идей.

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Вы можете попробовать переписать шаблон для TabPanel, однако, если это не сработает, вам придется перезаписать TabControl.Template.Шаблоны управления по умолчанию можно найти здесь

Редактировать

Только что протестировано, и TabPanel не имеет шаблона, который вы можете переопределить, поэтомуЛучше всего было бы перезаписать TabControl.Template, чтобы использовать собственную панель для размещения TabItems.

0 голосов
/ 09 октября 2016

Спасибо "Andrew Hanlon", вы можете использовать Blend для редактирования шаблона TabControl.

  • Заменить TabPanel на DockPanel
  • Затем добавьте HorizontalAlignment="Right"

Это работает со мной.

...