2015-04-03 3 views
5

Ich benutze AvalonDock in einem Projekt und möchte den verankerbaren Bereich verwenden, aber anstatt der Registerkarte, die unten angezeigt wird, möchte ich, dass es oben wie in einem Dokumentfenster erscheint. Für mein Projekt ist ein Dokumentbereich nicht das geeignete Steuerelement. Daher muss ich einen Weg finden, um den verankerbaren Bereich auf dieselbe Weise anzuzeigen.Wie verschiebe ich die AvalonDock-Registerkarte "Verankerbarer Bereich" nach oben statt nach unten?

enter image description here

Antwort

2

Nach Issue Ticket found on CodePlex gibt es einen Fehler, der die TabStripPlacement nach oben verhindert ändern. Die Art und Weise, dies zu erreichen ist es, den vorhandenen Stil mit einem wie folgt zu ersetzen:

<Style x:Key="MyCustomAnchorablePaneControlStyle" TargetType="{x:Type xcad:LayoutAnchorablePaneControl}"> 

    <Setter Property="TabStripPlacement" Value="Top"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type xcad:LayoutAnchorablePaneControl}"> 
       <Grid ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local"> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="Auto"/> 
         <RowDefinition Height="*"/> 
        </Grid.RowDefinitions> 
        <!--Following border is required to catch mouse events--> 
        <Border Background="Transparent" Grid.RowSpan="2"/> 

        <xcad:AnchorablePaneTabPanel x:Name="HeaderPanel" Margin="2,0,2,2" IsItemsHost="true" Grid.Row="0" KeyboardNavigation.TabIndex="1" Panel.ZIndex="1"/> 

        <Border x:Name="ContentPanel" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="0" KeyboardNavigation.DirectionalNavigation="Contained" Grid.Row="1" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Cycle"> 
         <ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> 
        </Border> 

       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsEnabled" Value="false"> 
         <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 

    <Setter Property="ItemContainerStyle"> 
     <Setter.Value> 
      <Style TargetType="{x:Type TabItem}"> 
       <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/> 
       <Setter Property="ToolTip" Value="{Binding ToolTip}"/> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TabControl}}, Path=Items.Count}" Value="1"> 
         <Setter Property="Visibility" Value="Collapsed"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Setter.Value> 
    </Setter> 

    <Setter Property="ItemTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <xcad:LayoutAnchorableTabItem Model="{Binding}"/> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 

    <Setter Property="ContentTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <xcad:LayoutAnchorableControl Model="{Binding}"/> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 

</Style> 
+1

, wenn Sie den Rand auf der 'XCAD machen: AnchorablePaneTabPanel' line„2,2,2,0“, dann sehen sie besser. Ohne diese Änderung sehen sie wie untere Registerkarten oben aus. – zaknotzach

Verwandte Themen