默认TabItem背景颜色

时间:2011-07-20 20:53:59

标签: c# .net wpf .net-3.5 systemcolors

如果选项卡中未设置某些内容,我想设置TabItem标题(TabItem.Background)的背景颜色。为了实现这一点,我在ViewModel中有一个Brush属性,它绑定到TabItem的Background属性。但是,我不知道如何获取/创建默认的TabItem背景画笔。

public Brush TabItemBrush
{
    get
    {
        return IsContentSet ? DefaultTabItemBrush : Brushes.LightSkyBlue;
    }
}
<TabItem Header="Some Header" Background="{Binding TabItemBrush, Mode=OneWay}">

我希望 DefaultTabItemBrush 画笔与其他TabItem匹配,因此如果主题更改,则所有TabItems看起来仍然相同。

SystemColors中是否有默认画笔?

使用C#/ .NET 3.5

1 个答案:

答案 0 :(得分:1)

我最终使用了来自In WPF, how do I get the current theme's button background?

的解决方案

然后在我的代码中看起来像:

public Brush TabItemBrush
{
    get
    {
        return IsContentSet ?  (Brush)UIUtilities.GetValueFromStyle(typeof(TabItem), Control.BackgroundProperty) : Brushes.LightSkyBlue;
    }
}
<TabItem Header="Some Header" Background="{Binding TabItemBrush, Mode=OneWay}">

当IsContentSet == true时,它将使用默认画笔,当为false时,其他画笔在这种情况下使用LightSKyBlue