如何使用 AvalonDock 更改选项卡项窗格的颜色

How to change the color of the tab item pane using AvalonDock

我正在为我的应用程序开发一个深色主题,我的所有控件都使用 AvalonDock。在大多数情况下,我已经成功地将所有其他控件更新到我的深色模式。除了这些 tabitems(见下图)

我的应用程序中的每个选项卡项都有这个换肤问题。这是因为此控件位于 AvalonDock:DockingManager 中,因此我可以简单地创建目标类型 TabControl 或 TabItem 的样式;我已经试过了,但没有用。

这是我设置 DockingManager 的方式:

<avalonDock:DockingManager x:Name="DockingManager"
                                   Foreground="Black"
                                   DocumentsSource="{Binding Panes}"
                                   AnchorablesSource="{Binding Tools}"
                                   ActiveContent="{Binding MyActiveContent, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                   LayoutItemTemplateSelector="{StaticResource AvalonDockPaneDataTemplateSelector}"
                                   AllowMixedOrientation="True"
                                   Grid.Row="1">

            <avalonDock:DockingManager.LayoutItemContainerStyleSelector>
                <view:PaneStyleSelector>
                    
                    <view:PaneStyleSelector.ToolStyle>
                        <Style TargetType="{x:Type avalonDock:LayoutAnchorableItem}">
                            
                            <Setter Property="Title"
                                    Value="{Binding Model.Title}" />
                            <!--<Setter Property="IconSource" Value="{Binding Model.IconSource}"/>-->
                            <Setter Property="Visibility"
                                    Value="{Binding Model.IsVisible, ConverterParameter={x:Static Visibility.Hidden}, Converter={StaticResource BooleanToVisibilityConverter}, Mode=TwoWay}" />
                            <Setter Property="ContentId" Value="{Binding Model.ContentId}"/>
                            <Setter Property="IsActive" Value="{Binding Model.IsActive, Mode=TwoWay}"/>
                        </Style>
                    </view:PaneStyleSelector.ToolStyle>
                    
                    <view:PaneStyleSelector.PaneStyle>
                        <Style TargetType="{x:Type avalonDock:LayoutItem}">
                            
                            <Setter Property="Title"
                                    Value="{Binding Model.Title}"/>
                            <Setter Property="CloseCommand"
                                    Value="{Binding CloseCommand}" />                           
                            <!--<Setter Property="IconSource" Value="{Binding Model.IconSource}"/>-->
                            <Setter Property="ContentId" Value="{Binding Model.ContentId}"/>
                        </Style>
                    </view:PaneStyleSelector.PaneStyle>
                    
                </view:PaneStyleSelector>
            </avalonDock:DockingManager.LayoutItemContainerStyleSelector>
            <avalonDock:LayoutRoot>             
                <avalonDock:LayoutPanel Orientation="Horizontal">
                    <avalonDock:LayoutDocumentPane />
                    <avalonDock:LayoutAnchorablePane Name="MyPane"
                                                     DockWidth="350" />

                </avalonDock:LayoutPanel>
            </avalonDock:LayoutRoot>
        </avalonDock:DockingManager>

如何访问这些控件的 color/brush/Fill/Background?

编辑文档页眉模板。 试试这个,它在我这边很好用。您可以更改 TextBlock 的背景 属性。

<avalonDock:DockingManager.DocumentHeaderTemplate>
  <DataTemplate>
    <Grid>
      <TextBlock Text="..." HorizontalAlignment="Center" VerticalAlignment="Center" Padding="10" FontSize="18" Background="Black" Foreground="White"/>
    </Grid>
  </DataTemplate>
</avalonDock:DockingManager.DocumentHeaderTemplate>