我正在使用C#/ WPF来制作UI .
我的UI在Tab Control的 Headers 区域上有一个按钮,方便用户使用 .
问题是,如果添加了许多选项卡,那么最后一个(或者如果它有多行,其中一个)可以被这些按钮覆盖,如附图中的红色矩形:
有没有办法限制TabControl的 Headers 区域的最大宽度,但保持TabItems的内容区域的宽度?
目前的XAML:
<Grid>
<Grid HorizontalAlignment="Stretch">
<TabControl BorderThickness="0,0,0,1" Margin="0,0,0,0">
<TabItem MinWidth="130" Height="27" Content="Title" />
<TabItem MinWidth="130" Height="27" Content="Title" />
<TabItem MinWidth="130" Height="27" Content="Title" />
<TabItem MinWidth="130" Height="27" Content="Title" />
<TabItem MinWidth="130" Height="27" Content="Title" />
<TabItem MinWidth="130" Height="27" Content="Title" />
<TabItem MinWidth="130" Height="27" Content="Title" />
<TabItem MinWidth="130" Height="27" Content="Title" />
</TabControl>
</Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<Button Margin="0,2,5,0" HorizontalAlignment="Left" Height="20" Width="22" VerticalAlignment="top" Content="+" />
<Button Width="65" Height="25" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,0,1,1" Content="Close" />
</StackPanel>
</Grid>
`
注意:最重要的是,我可能能够使用TabItems的负边距来溢出父(TabControl)的宽度,但它可能是一个不好的解决方法 .
请告诉我在这种情况下会有什么好方法 .
1 回答
您可以定义自己的TabControl样式,或者更具体地说是ControlTemplate,以插入“ButtonPanel”,如下所示: