2012-10-30 4 views
0

안녕하세요 여러분!LayoutPanel/LayoutDocument의 탭 제목을 숨기는 방법은 무엇입니까?

나는이 프로젝트에 AvalonDock를 사용하고, 나는이 질문을 가진 끝났다 : 내 프로젝트에서 개발 된 일부 페이지에서

을, 나는 표준 TextBlock의를 사용하는 사용자 정의 종이 등록되어 있습니다. 그리고 일부 페이지에서는 특히이 페이지의 왼쪽에 고정 된 LayoutAnchorable과 오른쪽에 고정 된 LayoutDocument가 있습니다.

LayoutDocument의 경우 이미이 페이지에 제목이 있으므로 제목이 비어 있습니다. 이로 인해이 LayoutDocument Tab의 TabItem (Title)이 여전히 빈 값으로 나타납니다. 모든 페이지에서 내 제목을 유지하려면이 빈 tabItem을 숨기거나 제거하는 방법이 있는지 궁금합니다.이 제목은 제목입니다. 내 시도 중 하나는 페이지의 여백을 수정하는 것이 었습니다. 그러나이 LayoutDocument TabItem은 아래쪽으로 다시 조정되어 표시됩니다.

이 문제는 AvalonDock이 아니라는 것을 알고 있습니다. 원래 디자인과 다른 동작입니다. 문서의 제목은 숨겨지기위한 것이 아니지만 독자적인 제목 페이지를 갖고 싶은 사람들에게는 흥미로울 것이라고 생각합니다. 최고 감사합니다.

구스타보.

답변

0

2.0 이전의 AvalonDock 버전에서 원하는대로 할 수있는 속성이있었습니다. 그것은 당신이 AvalonDock을 전체 DockingManager 스타일을 재 작성하거나 수정해야 하나, 2.0 DocumentPane.ShowHeader

했다.

나는 이슈 트래커에서 이것에 대한 문제를 생성하고, 다시 기능을해야 할 다운로드 할 수있는 패치를 부착.

이 패치는 이전 버전과의 호환성을 향상시키고, 최신 버전에 적용 할 때 약간의 조정이 필요합니다. 또한, 이후 출시 된 새로운 테마는 처리하지 않습니다.

http://avalondock.codeplex.com/workitem/15626

패치 :

Index: AvalonDock/AvalonDock.Theme.VS2010/Theme.xaml 
=================================================================== 
--- AvalonDock/AvalonDock.Theme.VS2010/Theme.xaml (revision 96146) 
+++ AvalonDock/AvalonDock.Theme.VS2010/Theme.xaml (working copy) 
@@ -93,7 +93,9 @@ 
         </Grid.RowDefinitions> 
         <!--Following border is required to catch mouse events--> 
         <Border Background="Transparent" Grid.RowSpan="2"/> 
-      <Grid Panel.ZIndex="1"> 
+      <Grid Grid.Row="0" 
+        Visibility="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type avalonDockControls:LayoutDocumentPaneControl}}, Path=Model.ShowHeader, Converter={StaticResource BoolToVisibilityConverter}}" 
+        Panel.ZIndex="1"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition/> 
           <ColumnDefinition Width="Auto"/> 
Index: AvalonDock/AvalonDock.Themes.Aero/Theme.xaml 
=================================================================== 
--- AvalonDock/AvalonDock.Themes.Aero/Theme.xaml (revision 96146) 
+++ AvalonDock/AvalonDock.Themes.Aero/Theme.xaml (working copy) 
@@ -38,7 +38,9 @@ 
         </Grid.RowDefinitions> 
         <!--Following border is required to catch mouse events--> 
         <Border Background="Transparent" Grid.RowSpan="2"/> 
-      <Grid Panel.ZIndex="1" > 
+      <Grid Grid.Row="0" 
+        Visibility="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type avalonDockControls:LayoutDocumentPaneControl}}, Path=Model.ShowHeader, Converter={StaticResource BoolToVisibilityConverter}}" 
+        Panel.ZIndex="1" > 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition/> 
           <ColumnDefinition Width="Auto"/> 
Index: AvalonDock/AvalonDock/Layout/LayoutDocumentPane.cs 
=================================================================== 
--- AvalonDock/AvalonDock/Layout/LayoutDocumentPane.cs (revision 96146) 
+++ AvalonDock/AvalonDock/Layout/LayoutDocumentPane.cs (working copy) 
@@ -49,6 +49,27 @@ 
      return true; 
     } 

+  #region ShowHeader 
+  private bool _showHeader = true; 
+ 
+  public bool ShowHeader 
+  { 
+   get 
+   { 
+    return _showHeader; 
+   } 
+   set 
+   { 
+    if (value != _showHeader) 
+    { 
+     this._showHeader = value; 
+     RaisePropertyChanged("ShowHeader"); 
+    } 
+   } 
+  } 
+ 
+  #endregion 
+ 
     #region SelectedContentIndex 

     private int _selectedIndex = -1; 
Index: AvalonDock/AvalonDock/Themes/generic.xaml 
=================================================================== 
--- AvalonDock/AvalonDock/Themes/generic.xaml (revision 96146) 
+++ AvalonDock/AvalonDock/Themes/generic.xaml (working copy) 
@@ -28,7 +28,9 @@ 
         </Grid.RowDefinitions> 
         <!--Following border is required to catch mouse events--> 
         <Border Background="Transparent" Grid.RowSpan="2"/> 
-      <Grid Panel.ZIndex="1"> 
+      <Grid Grid.Row="0" 
+        Visibility="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type avalonDockControls:LayoutDocumentPaneControl}}, Path=Model.ShowHeader, Converter={StaticResource BoolToVisibilityConverter}}" 
+        Panel.ZIndex="1"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition/> 
           <ColumnDefinition Width="Auto"/>