Фон трапециевидной вкладки Dragablz (WPF) - PullRequest
0 голосов
/ 01 октября 2018

Я использую Dragablz и Mahapps и хочу иметь возможность переключаться между современными вкладками типа Material Design и трапециевидными.Я создал два стиля TabablzControl, между которыми можно переключаться, и у меня есть CustomHeaderViewModel, который я тоже могу изменить, чтобы настроить его внешний вид в соответствии с изменяющимся стилем вкладок.Мой заголовок имеет панель стека с текстовым блоком и значком.Я могу изменить цвет фона SP, но в режиме трапеции я не знаю, как изменить фон трапеции в соответствии с выбранной цветовой темой.

Вот мои два стиля:

        <Style TargetType="{x:Type dragablz:TabablzControl}" x:Key="TabablzControlStyle">
            <Setter Property="NewItemFactory" Value="{x:Static stUi:UINewItem.Factory}" />
            <Setter Property="ItemsSource" Value="{Binding Items}" />
            <Setter Property="ClosingItemCallback" Value="{Binding ClosingTabItemHandler}" />
            <Setter Property="ShowDefaultCloseButton" Value="False" />
            <Setter Property="AdjacentHeaderItemOffset" Value="-10" />
            <Setter Property="ItemContainerStyle" Value="{StaticResource TrapezoidDragableTabItemStyle}" />
            <Setter Property="HeaderMemberPath" Value="Header" />
            <Setter Property="Background" Value="Red"/>
            <Setter Property="InterTabController" Value="{StaticResource InterTabController}" />
            <Setter Property="Margin" Value="0 8 0 0" />
        </Style>

        <Style TargetType="{x:Type dragablz:TabablzControl}" x:Key="ModernControlStyle">
            <Setter Property="NewItemFactory" Value="{x:Static stUi:UINewItem.Factory}" />
            <Setter Property="ItemsSource" Value="{Binding Items}" />
            <Setter Property="ClosingItemCallback" Value="{Binding ClosingTabItemHandler}" />
            <Setter Property="ShowDefaultCloseButton" Value="False" />
            <Setter Property="AdjacentHeaderItemOffset" Value="0" />
            <Setter Property="HeaderMemberPath" Value="Header" />
            <Setter Property="InterTabController" Value="{StaticResource InterTabController}" />
            <Setter Property="Margin" Value="0 8 0 0" />
        </Style>

Example:

Вы можете видеть, что область вокруг стековой панели светлее, чем сам SP.Как изменить цвет трапеции?

Спасибо, Стив

1 Ответ

0 голосов
/ 09 октября 2018

Ну, я не смог найти элегантный способ сделать это, поэтому я добавил код для поиска типа «Трапеция» в функции Loaded () моего пользовательского кода заголовка:

        var trap = TryFindParent<Trapezoid>(this);

        if (null != trap)
        {
            trap.Background = Application.Current.Resources["AccentColorBrush1"] as SolidColorBrush;
        }

TryFindParent отсюда: Как мне найти элементы управления WPF по имени или типу?

Это подойдет мне.Изменение цвета обычно выполняется только один раз, а настройки сохраняются.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...