У меня проблемы с увеличением размера моего TabControl до размера моего окна. Когда я устанавливаю высоту на Авто, на самом деле она просто сжимается, чтобы соответствовать моему обычному Tabitems
. Помимо пользовательского стиля TabItem
я также использую стиль для самого TabControl
, и мне интересно, может ли это как-то вызвать проблему.
В настоящее время я устанавливаю высоту для TabControl
до 350, что делает его больше, чем элементы Tab, но мне нужно растянуть его до контейнера, а не сжать до его содержимого.
<Window ... >
<Window.Resources>
<!--Template/Styling for individual Tab Headers-->
<Style TargetType="TabItem">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border BorderBrush="Black" BorderThickness="{TemplateBinding BorderThickness}">
<StackPanel Name="Panel">
<Ellipse Margin="0 20 0 10" Height="30" Width="30" Fill="Gray"/>
<Label Name="Header" Content="{TemplateBinding Header}" />
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Restructuring the entire TabControl (tabs AND content)
This full restructuring is required to vertically center the TabPanel -->
<Style TargetType="TabControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabControl">
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!--Grid provides container to give border and mask for TabPanel (which contains the tab headers)-->
<Grid VerticalAlignment="Center" Grid.Column="0">
<!--First border (previous sibling) provides mask to round edges of TabPanel-->
<Border Name="mask" Background="White" CornerRadius="5"/>
<TabPanel Grid.Column="0" IsItemsHost="True" VerticalAlignment="Center" Margin="0">
<TabPanel.OpacityMask>
<VisualBrush Visual="{Binding ElementName=mask}"/>
</TabPanel.OpacityMask>
</TabPanel>
<!-- Second border (subsequent sibling) provides the actual border for the TabPanel.
Must be a sibling, not a parent, or border won't "wrap" correctly. -->
<Border Grid.Column="0" BorderThickness="1" BorderBrush="Black" CornerRadius="5"/>
</Grid>
<!--The Tab Content-->
<Border Grid.Column="1" BorderThickness="1" BorderBrush="Red" Height="Auto">
<ContentPresenter Margin="5" ContentSource="SelectedContent" />
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<TabControl TabStripPlacement="Left" VerticalAlignment="Center" Height="350">
<TabItem Header="Exams"/>
<TabItem Header="Templates" BorderThickness="0 1"/>
<TabItem Header="Compare Exams"/>
</TabControl>
</Grid>
</Window>