#wpf #xaml
Вопрос:
Как сделать TabControl таким образом
Я хочу сделать вкладку «Параметры», которая расположена в левом нижнем углу, но не знаю, как изменить положение заголовка для вкладки 2
<Grid>
<TabControl TabStripPlacement="Left">
<TabControl.Resources>
<Style TargetType="TabItem">
<Setter Property="Height" Value="50" />
<Setter Property="Width" Value="50" />
</Style>
</TabControl.Resources>
<TabItem>
<TabItem.Header>
<TextBlock Text="Tab1" />
</TabItem.Header>
<TabItem.Content>
<TextBlock Text="Tab1 content" />
</TabItem.Content>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Text="Tab2" />
</TabItem.Header>
<TabItem.Content>
<TextBlock Text="Tab2 content" />
</TabItem.Content>
</TabItem>
</TabControl>
</Grid>
Комментарии:
1. можете ли вы опубликовать текущее состояние кода?
2. @пользователь1239299 Отредактировано
Ответ №1:
Самое простое решение-вставить невидимый манекен TabItem
, высота которого соответствует зазору перед последним TabItem
.
<TabItem Visibility="Hidden"/>
Вы можете задать его высоту в конструкторе или во время выполнения следующим способом.
void SetDummyTabItemHeight(TabItem dummyItem)
{
var tabPanel = (TabPanel)VisualTreeHelper.GetParent(dummyItem);
var otherItemsActualHeight = tabPanel.Children
.Cast<TabItem>()
.Where(x => x != dummyItem)
.Sum(x => x.ActualHeight);
dummyItem.Height = tabPanel.ActualHeight - otherItemsActualHeight;
}
Комментарии:
1. Я понимаю, что нет более элегантного способа?
2. Я не знаю другого простого решения, но вы можете изучить
TabItem
иTabPanel
исходный код в справочном источнике.3. Большое вам спасибо, я буду использовать этот метод