2011-10-24 28 views
2

我想弄清楚如何使VS2010風格的AvalonDock功能更像VS2010一點。我遇到的問題是,如果標籤區域中的標籤數量多於標題區域,則不會向用戶指示存在更多選項卡。麻煩造型和編輯AvalonDock文檔標籤面板

我認爲標籤標題只是剪裁和不可見。我有VS2010風格的自定義副本,去了DocumentPane風格:

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

,發現標籤頭(我認爲)作爲「廣告:DocumentTabPanel」。我裹着這在ScrollViewer中:

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

    <ad:DocumentTabPanel 
     x:Name="paneTabsPanel" 
     Panel.ZIndex ="1" 
     IsItemsHost="True" 
     TabItemStyle="{StaticResource CustomDocumentTabItemStyle}"/> 
</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類,因爲我需要額外的屬性。

有人可以解釋/幫我想出一個解決方案來滾動標籤?

回答