如果选项卡中未设置某些内容,我想设置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
答案 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