2015-01-12 13 views
1

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

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

white space wpf tab control

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> 

ответ

5

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

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

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

Смежные вопросы