默认 TabItem 背景颜色

发布于 2024-11-25 08:22:43 字数 613 浏览 4 评论 0原文

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

I want to set the background color of a TabItem Header (TabItem.Background) if certain content is not set in the tab. To accomplish this, I have a Brush property in my ViewModel that is bound to the Background property of the TabItem. However, I'm not sure how to get/create the default TabItem background brush.

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

I would like the DefaultTabItemBrush brush to match the other TabItems so if the Theme changes all the TabItems will still look the same.

Is the default brush available in SystemColors?

Using C# / .NET 3.5

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

呢古 2024-12-02 08:22:44

我最终使用了 在WPF中,如何获取当前主题的按钮背景?

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

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

I ended up using the solution from In WPF, how do I get the current theme's button background?

Then in my code looks something like:

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

When IsContentSet == true it will use the default brush and when false some other brush in this case LightSKyBlue

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文