繁体   English   中英

如何避免tabItem失去颜色

[英]How to avoid that a tabItem loses colour

我有一个WPF程序,在其左侧设置了tabItems接口。

我想要的是tabItem保持colour ,如下图所示:

在此处输入图片说明

请注意鼠标指针在哪里。 tabItem coloured

当进入右侧界面的另一部分时, tabItem 颜色并浮雕

在此处输入图片说明

我不确定是否有助于发布我的xaml文件。 基本上,我注意到当箭头在右侧的datagrid上移动时, tabItem在可用空间上着色时未着色。

请注意,我不希望tabItem具有特定的颜色,它必须遵循系统调色板并因此具有正确的系统颜色。

感谢您的任何帮助。

这是Microsoft的文章 ,描述了如何将ColorTemplateTriggers配合使用来解决您的问题。

这是文章中的示例,以防万一将来由于某些原因链接断开:

<Style TargetType="{x:Type TabItem}">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type TabItem}">
        <Grid>
          <Border 
            Name="Border"
            Margin="0,0,-4,0" 
            Background="{StaticResource LightBrush}"
            BorderBrush="{StaticResource SolidBorderBrush}" 
            BorderThickness="1,1,1,1" 
            CornerRadius="2,12,0,0" >
            <ContentPresenter x:Name="ContentSite"
              VerticalAlignment="Center"
              HorizontalAlignment="Center"
              ContentSource="Header"
              Margin="12,2,12,2"
              RecognizesAccessKey="True"/>
          </Border>
        </Grid>
        <ControlTemplate.Triggers>
          <Trigger Property="IsSelected" Value="True">
            <Setter Property="Panel.ZIndex" Value="100" />
            <Setter TargetName="Border" Property="Background" Value="{StaticResource WindowBackgroundBrush}" />
            <Setter TargetName="Border" Property="BorderThickness" Value="1,1,1,0" />
          </Trigger>
          <Trigger Property="IsEnabled" Value="False">
            <Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
            <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

资源:

<LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
  <GradientBrush.GradientStops>
    <GradientStopCollection>
      <GradientStop Color="#FFF" Offset="0.0"/>
      <GradientStop Color="#EEE" Offset="1.0"/>
    </GradientStopCollection>
  </GradientBrush.GradientStops>
</LinearGradientBrush>

  ...

<SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />

  ...

<SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />

  ...

<SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />

  ...

<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />

  ...

<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM