2012-05-31 3 views
0

탭 컨트롤을 사용하여 세로로 "늘이기"할 수있는 HCC를 얻으려면 어떻게해야합니까? 이것을 어떻게 할 수 있습니까? 당신이 HeaderedContentControl에 대한 컨트롤 템플릿을 살펴보면WPF HeaderContent 컨트롤 세로 맞춤

<DataTemplate x:Key="WorkspacesTemplate"> 
    <TabControl 
    IsSynchronizedWithCurrentItem="True" 
    ItemsSource="{Binding}" 
    ItemTemplate="{StaticResource ClosableTabItemTemplate}" 
    Margin="4" 
    /> 
</DataTemplate> 

<DataTemplate x:Key="ClosableTabItemTemplate"> 
<DockPanel> 
    <Button 
    Command="{Binding Path=CloseCommand}" 
    Content="X" 
    Cursor="Hand" 
    DockPanel.Dock="Right" 
    Focusable="False" 
    FontFamily="Arial" 
    FontSize="9" 
    FontWeight="Bold" 
    Margin="0,1,0,0" 
    Padding="0" 
    VerticalContentAlignment="Bottom" 
    Width="16" Height="16" 
    /> 
     <ContentPresenter 
    Content="{Binding Path=DisplayName}" 
    /> 
</DockPanel> 

답변

2

당신이 확인할 수있는 것들 : 여기

<HeaderedContentControl 
Content="{Binding Path=Workspaces}" 
ContentTemplate="{StaticResource WorkspacesTemplate}" /> 

는 해당 스타일 정보입니다 : 여기

헤더 콘텐츠 컨트롤의 XAML입니다 콘텐츠가 StackPanel에 저장되므로 콘텐츠가 세로로 늘어나지 않습니다.

<Style x:Key="HeaderedContentControlStyle" 
     TargetType="{x:Type HeaderedContentControl}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type HeaderedContentControl}"> 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="Auto"/> 
         <RowDefinition Height="*"/> 
        </Grid.RowDefinitions> 
        <ContentPresenter ContentSource="Header"/> 
        <ContentPresenter Grid.Row="1"/> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

을 다음 내용이 수직으로 스트레칭해야 해당 스타일

<HeaderedContentControl  
    Style="{StaticResource HeaderedContentControlStyle}" 
    Content="{Binding Path=Workspaces}"  
    ContentTemplate="{StaticResource WorkspacesTemplate}" /> 

를 사용 : 우리는이 같은 그리드와 StackPanel의 교체 그렇다면

<Style x:Key="HeaderedContentControlStyle" 
     TargetType="{x:Type HeaderedContentControl}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type HeaderedContentControl}"> 
       <StackPanel> 
        <ContentPresenter ContentSource="Header"/> 
        <ContentPresenter/> 
       </StackPanel> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

: 이것은 기본 템플릿입니다.

+0

우수 - 감사합니다. – MickeySixx