TabItem宽度问题中的ProgressBar

时间:2013-10-09 08:58:42

标签: wpf xaml progress-bar tabcontrol

Hello亲爱的Stack Overflow用户。

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

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

当ProgressBar值更改时,TabItem的宽度会随着它的当前宽度而变化,直到当前Tab行上的项目可能的最大宽度。同一标题行上的其他标签可以移动也可以缩小。

所以,有两个问题:

  1. 如何避免标题更改其大小以适应ProgressBar?
  2. 为什么ProgressBar想要尽可能大?
  3. 视觉示例!!

    Example of issue 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

    <TabControl Name="TabController"
                TabStripPlacement="Bottom"
                Padding="0"
                helpers:TabItemGeneratorBehavior.ItemsSource="{Binding TabPageCollection, Mode=TwoWay}"
                helpers:TabItemGeneratorBehavior.SelectedItem="{Binding SelectedTabPage, Mode=TwoWay}"
                ItemContainerStyle="{StaticResource TabItemStyle}"/>
    

1 个答案:

答案 0 :(得分:0)

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