你好亲爱的 Stack Overflow 用户。
我在 TabControl ItemContainerStyle 模板中放置 ProgressBar 时遇到问题。
仅当 TabItem 标头拉伸到 TabControl 宽度时才会出现此问题。如果只有几个标题,那么它们的宽度不会改变并且进度条工作正常。
当 ProgressBar 值更改时,TabItem 的宽度也会随之变化,从当前宽度变为当前 Tab 行上的项目可能的最大宽度。同一标题行上的其他选项卡要么移动要么缩小。
所以,两个问题:
- 如何避免标题更改其大小以适应 ProgressBar?
- 为什么 ProgressBar 想要尽可能大?
视觉示例!!
ItemContainerStyle (所有控件都使用拉伸作为宽度)
<Style x:Key="TabItemStyle"
TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Grid ...>
<ProgressBar BorderThickness="0"
Background="{x:Null}"
Value="{Binding Progress}">
<ProgressBar.Style .../>
<ProgressBar.Clip .../>
</ProgressBar>
<Border ...>
<ContentPresenter .../>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
选项卡控件
<TabControl Name="TabController"
TabStripPlacement="Bottom"
Padding="0"
helpers:TabItemGeneratorBehavior.ItemsSource="{Binding TabPageCollection, Mode=TwoWay}"
helpers:TabItemGeneratorBehavior.SelectedItem="{Binding SelectedTabPage, Mode=TwoWay}"
ItemContainerStyle="{StaticResource TabItemStyle}"/>