如何使用 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>
我正在为我的应用程序开发一个深色主题,我的所有控件都使用 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>