2013-10-09 1 views
0

안녕하세요. 스택 오버플로 사용자.TabItem 너비의 ProgressBar

TabControl ItemContainerStyle 템플릿 내에 ProgressBar를 배치 할 때 문제가 발생합니다.

이 문제는 TabItem 헤더가 TabControl 너비로 늘린 경우에만 발생합니다. 헤더가 거의없는 경우에는 너비가 변경되지 않고 진행 표시 줄이 올바르게 작동합니다.

ProgressBar 값이 변경되면 TabItem의 너비가 현재 너비에서 현재 탭 줄의 항목에 가능한 최대 너비까지 변경됩니다. 동일한 머리글 행의 다른 탭은 이동되거나 축소됩니다.

그래서, 두 가지 질문 :

  1. 어떻게 헤더가의 ProgressBar에 맞게 크기를 변경하지 않도록합니까?
  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

문제가 해결 (모든 컨트롤 폭 신축성 사용)! 캔버스에서 ProgressBar를 감싸고 ProgressBar 크기를 Canvas 실제 너비/높이에 바인딩되도록 설정합니다.