2013-10-09 48 views
0

尊敬的Stack Overflow用戶。TabItem中的ProgressBar寬度問題

我在TabControl ItemContainerStyle模板中放置ProgressBar時遇到問題。

只有在TabItem標題被拉伸到TabControl寬度時纔會發生此問題。如果只有少量標題,那麼它們的寬度不會改變,並且進度條可以正常工作。

當ProgressBar值發生更改時,TabItem的寬度將從其當前寬度更改爲當前寬度,直到該當前Tab行上的項目的最大可能寬度。同一標題行上的其他標籤可以移動或縮小。

於是,兩個問題:

  1. 如何避免頭改變其大小,以適應進度?
  2. 爲什麼ProgressBar想要儘可能大?

視覺例子!!

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}"/> 

回答

0

問題固定!在Canvas中包裹ProgressBar並將ProgressBar大小設置爲綁定到畫布實際寬度/高度。