2011-10-24 3 views
2

AvalonDock의 VS2010 스타일을 VS2010과 같은 기능으로 만드는 방법을 찾으려고합니다. 내가 겪고있는 문제는 헤더 영역에 들어갈 수있는 것보다 더 많은 탭이있을 때 더 많은 탭이 있음을 사용자에게 알려주지 않는다는 것입니다.AvalonDock 문서 탭 패널의 스타일링 및 편집 문제가 발생했습니다.

탭 머리글이 잘리고 보이지 않는 것으로 생각했습니다. 내가 VS2010 스타일의 사용자 지정 사본을 가지고 있고 DocumentPane 스타일에 갔다 :

<!--DocumentPane--> 
<Style x:Key="{x:Type ad:DocumentPane}" TargetType="{x:Type ad:DocumentPane}"> ... 

을 그리고 "광고 : DocumentTabPanel"로 (내 생각) 탭 헤더를 발견했다.

<ScrollViewer Style="{StaticResource ResourceKey=TabHeaderScrollViewer}" CanContentScroll="True"> 

    <ad:DocumentTabPanel 
     x:Name="paneTabsPanel" 
     Panel.ZIndex ="1" 
     IsItemsHost="True" 
     TabItemStyle="{StaticResource CustomDocumentTabItemStyle}"/> 
</ScrollViewer> 

스크롤 뷰어 그것에 사용자 정의 스타일이하는 설정이다 : 나는 ScrollViewer에이 포장

<Style x:Key="TabHeaderScrollViewer" TargetType="ScrollViewer"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ScrollViewer"> 
       <Grid Background="{TemplateBinding Background}"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="Auto"/> 
        </Grid.ColumnDefinitions> 

        <RepeatButton Command="ScrollBar.PageLeftCommand"></RepeatButton> 
        <ScrollContentPresenter Grid.Column="1" 
               x:Name="ScrollContentPresenter" 
               Cursor="{TemplateBinding Cursor}" 
               Margin="{TemplateBinding Padding}" 
               ContentTemplate="{TemplateBinding ContentTemplate}"/> 

         <RepeatButton Grid.Column="2" Command="ScrollBar.PageRightCommand"></RepeatButton> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

오전 데 문제를 그 나는 탭의 톤을로드하는 경우에도 스크롤이 작동하지 않습니다. 나는 이것이 내 스타일에 문제가 있다고 생각하지 않는다. 탭 머리글은 VisualTree에 없거나 축소 된 표시가 나타납니다. 한동안 AvalonDock 소스를 살펴 봤지만 헤더가 숨겨진 것을 볼 수는 없습니다.

추가 속성이 필요했기 때문에 이미 AvalonDock 클래스 중 일부를 서브 클래스 화해야했습니다.

누군가가 설명 할 수 있습니까/탭을 스크롤하는 해결책을 내놓을 수 있습니까?

답변

3

매우 간단하게 문제가 해결되었습니다. HorizontalScrollBarVisibility = "Auto"로 설정해야했습니다. http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer.horizontalscrollbarvisibility.aspx을 검사하여이 속성의 기본값이 무엇인지 확인했지만 거기에 표시되지 않거나 ScrollViewer 페이지에 표시되지 않습니다. 나는 그것이 "숨김"으로 기본 설정되어 있다고 가정합니다.

아무튼 "자동"으로 설정되면 탭이 넘칠 때만 반복 버튼이 표시됩니다.

관련 문제