У меня есть 4 вкладки в верхней части элемента управления вкладки. Я бы хотел, чтобы каждая вкладка использовала 25% ширины TabControl.Вкладки равной ширины в TabControl
Каков правильный способ, используя XAML, сделать это?
Вот что я пробовал:
<Grid HorizontalAlignment="Left" Height="458" Margin="10,65,0,0" VerticalAlignment="Top" Width="276">
<TabControl Grid.IsSharedSizeScope="True" HorizontalAlignment="Stretch">
<TabItem Header="Cameras">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="tabControl"/>
</Grid.ColumnDefinitions>
</Grid>
</TabItem>
<TabItem Header="MultiCam">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="tabControl"/>
</Grid.ColumnDefinitions>
</Grid>
</TabItem>
<TabItem Header="Search">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="tabControl"/>
</Grid.ColumnDefinitions>
</Grid>
</TabItem>
<TabItem Header="Admin" Margin="-2,-2,-10,-1">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="tabControl"/>
</Grid.ColumnDefinitions>
</Grid>
</TabItem>
</TabControl>
</Grid>
Технически говоря, вам нужен только один элемент в 'UniformGrid' для привязки' ActualWidth'. Сетка обрабатывает значение ширины, основанное на свойстве 'Columns'. Кроме того, вы можете использовать 'FrameworkElement', а не' Canvas', так как это тип, который фактически определяет ['ActualWidth'] (https://msdn.microsoft.com/en-us/library/system.windows.frameworkelement. actualwidth (v = vs.110) .aspx). –
@DanLyons благодарю вас за внимание. Я отредактировал свой ответ – Bijan