0

你好亲爱的 Stack Overflow 用户。

我在 TabControl ItemContainerStyle 模板中放置 ProgressBar 时遇到问题。

仅当 TabItem 标头拉伸到 TabControl 宽度时才会出现此问题。如果只有几个标题,那么它们的宽度不会改变并且进度条工作正常。

当 ProgressBar 值更改时,TabItem 的宽度也会随之变化,从当前宽度变为当前 Tab 行上的项目可能的最大宽度。同一标题行上的其他选项卡要么移动要么缩小。

所以,两个问题:

  1. 如何避免标题更改其大小以适应 ProgressBar?
  2. 为什么 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}"/>
4

1 回答 1

0

问题已解决!将 ProgressBar 包装在 Canvas 中,并将 ProgressBar 大小设置为绑定到 Canvas 实际宽度/高度。

于 2013-10-11T08:13:58.460 回答