Установить цвет фона TabControl

1

Я делаю сильно сшитое приложение. Я пытаюсь реализовать элемент управления вкладкой в WPF. Я уже начал обрезать tabitems и их соответствующие фоны. Тем не менее, я заметил, что только два tabitems на вкладке управления заполняет оставшееся пространство только белым. Какую собственность мне нужно стилизовать, чтобы изменить это пустое пространство? Любая помощь приветствуется, ниже - эталонное изображение, а также мой xaml.

Картина:

Изображение 174551

XAML:

<TabControl Margin="0,35,0,0" Background="#1F1F1F">
            <TabControl.Resources>
                <Style TargetType="TabItem">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="TabItem">
                                <Grid Name="Panel">
                                    <Border Name="Border" BorderThickness="1,1,1,0" BorderBrush="Gainsboro" CornerRadius="4,4,0,0" Margin="2,0">
                                        <ContentPresenter x:Name="ContentSite"
                                        VerticalAlignment="Center"
                                        HorizontalAlignment="Center"
                                        ContentSource="Header"
                                        Margin="10,2"/>
                                    </Border>
                                </Grid>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsSelected" Value="False">
                                        <Setter TargetName="Panel" Property="Background" Value="LightGray" />
                                        <Setter TargetName="Panel" Property="TextBlock.Foreground" Value="Black"></Setter>
                                    </Trigger>
                                    <Trigger Property="IsSelected" Value="True">
                                        <Setter TargetName="Panel" Property="Background" Value="#4d4d4d" />
                                        <Setter TargetName="Panel" Property="TextBlock.Foreground" Value="White"></Setter>
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </TabControl.Resources>
            <TabItem Header="Settings">

            </TabItem>
            <TabItem Header="Results">

            </TabItem>
        </TabControl>
Теги:
xaml
wpf
tabcontrol

2 ответа

5
Лучший ответ

Просто заверните TabControl на границе желаемого цвета. Поместите свойство Margin на эту границу:

<Border Margin="0,35,0,0" Background="DesiredColor">
  <TabControl Background="#1F1F1F">
    ...
  </TabControl>
</Border>

Белый (или более прозрачный) цвет фона заголовка фиксируется в шаблоне управления TabControl. Было бы также возможно изменить его, но это сложнее. Поэтому я бы предложил это решение, если вы просто хотите получить визуальный эффект.

0

Альтернатива не так сложна, как кажется, я предоставлю ответ на случай, если кому-то понадобится информация в будущем;

Вам нужно будет щелкнуть правой кнопкой мыши по элементу и отредактировать копию шаблона, затем вы можете отредактировать эту строку по мере необходимости,

<TabPanel x:Name="headerPanel" Background="COLOR"

По умолчанию цвет фона установлен на прозрачный, поэтому размещение границы или любой другой панели за этим объектом также будет работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню