如果未在选项卡中设置某些内容,我想设置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匹配,因此,如果主题更改,则所有TabItem仍将看起来相同。
SystemColors中是否提供默认画笔?
使用C#/ .NET 3.5
最佳答案
我最终使用了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时,它将使用默认画笔,而在这种情况下,如果使用其他画笔,则为LightSKyBlue