Рестайлинг AvalonDock для высококонтрастных тем?

Я использую AvalonDock в проекте. Для этого примера он структурирован следующим образом:

<ad:DockingManager>
    <ad:DockablePane>
        <ad:DockableContent Title="Test1">
        </ad:DockableContent>
        <ad:DockableContent Title="Test2">
        </ad:DockableContent>
    </ad:DockablePane>
</ad:DockingManager>

Обычные вкладки

Это хорошо, но, к сожалению, вкладки выглядят не так хорошо на высококонтрастных темах, как показано ниже.

Высококонтрастные вкладки

В идеале я хотел бы изменить стиль вкладок, чтобы использовать системный цвет для фона (например, цвет окна). Это возможно?

Спасибо, Алан


person Alan Spark    schedule 04.04.2012    source источник
comment
скачать туда биты из Code Plex. Там вы найдете файлы стилей xaml. Возьмите один и начните издеваться над ним.   -  person denis morozov    schedule 07.04.2012


Ответы (1)


зайдите на codeplex и скачайте биты avalon. Там вы сможете быстро найти их файлы XAML для стилей. Возьмите один за основу и начните издеваться над ним.

вы должны увидеть что-то вроде этого (я включу только один стиль)

<!--DockingManager-->
<Style x:Key="{x:Type ad:DockingManager}" TargetType="{x:Type ad:DockingManager}">
    <Setter Property="Background" Value="{StaticResource DockManagerBackground}"/>
    <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ad:DockingManager}">
                <Grid Background="{TemplateBinding Background}">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <StackPanel Name="PART_LeftAnchorTabPanel" 
                            Grid.Column="0" Grid.Row="1" Orientation="Vertical">
                        <StackPanel.Resources>
                            <Style TargetType="{x:Type ad:DockablePaneAnchorTabGroup}">
                                <Setter Property="LayoutTransform">
                                    <Setter.Value >
                                        <RotateTransform Angle="90"/>
                                    </Setter.Value>
                                </Setter>
                                <Setter Property="Margin" Value="0,2,2,0"/>
                            </Style>
                            <Style TargetType="Border">
                                <Setter Property="CornerRadius" Value="0,0,3,3"/>
                            </Style>
                        </StackPanel.Resources>
                    </StackPanel>
                    <StackPanel Name="PART_RightAnchorTabPanel" Grid.Column="2" Grid.Row="1"  Orientation="Vertical">
                        <StackPanel.Resources>
                            <Style TargetType="{x:Type ad:DockablePaneAnchorTabGroup}">
                                <Setter Property="LayoutTransform">
                                    <Setter.Value >
                                        <RotateTransform Angle="90"/>
                                    </Setter.Value>
                                </Setter>
                                <Setter Property="Margin" Value="2,2,0,0"/>
                            </Style>
                            <Style TargetType="Border">
                                <Setter Property="CornerRadius" Value="3,3,0,0"/>
                            </Style>
                        </StackPanel.Resources>
                    </StackPanel>
                    <StackPanel Name="PART_TopAnchorTabPanel" Grid.Column="1" Grid.Row="0" Orientation="Horizontal"/>
                    <StackPanel Name="PART_BottomAnchorTabPanel" Grid.Column="1" Grid.Row="2" Orientation="Horizontal"/>
                    <Border 
                        x:Name="PART_InternalContainer"
                        Background="{StaticResource DockManagerBorderBackground}"
                        Grid.Column="1" Grid.Row="1"
                        Padding="2">
                        <ContentPresenter />
                    </Border>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

note that right on top of the file there will be a bunch of brushes, start with them, then start digging dipper
person denis morozov    schedule 06.04.2012
comment
Большое спасибо Денис. Мне удалось изменить стиль вкладок с помощью этого метода. - person Alan Spark; 08.04.2012
comment
Я рад быть полезным. Успокойся, Алан! - person denis morozov; 08.04.2012