我在选项卡控件的顶部有4个选项卡.我希望每个标签使用TabControl宽度的25%.
使用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>
Run Code Online (Sandbox Code Playgroud)
Biz*_*han 13
这是另一个技巧,Grid可以重叠任意数量的元素:
<Grid>
<UniformGrid Columns="4" Margin="5,0">
<FrameworkElement x:Name="c1"/>
<!-- no need to add the other three -->
</UniformGrid>
<TabControl>
<TabItem Header="header" Width="{Binding ElementName=c1, Path=ActualWidth}"/>
<TabItem Header="header" Width="{Binding ElementName=c1, Path=ActualWidth}"/>
<TabItem Header="header" Width="{Binding ElementName=c1, Path=ActualWidth}"/>
<TabItem Header="header" Width="{Binding ElementName=c1, Path=ActualWidth}"/>
</TabControl>
</Grid>
Run Code Online (Sandbox Code Playgroud)
a UniformGrid的大小与TabControl用于测量每列的宽度相同.只添加一个,FrameworkElement因为所有TabItems都是相同的大小.
| 归档时间: |
|
| 查看次数: |
5506 次 |
| 最近记录: |