【问题标题】:Applying different style to same control inside different containers将不同样式应用于不同容器内的相同控件
【发布时间】:2012-11-23 08:53:47
【问题描述】:

这可以使用 Xaml 吗?例如,我在分组框和工具栏内有标签。我已使用 Xaml 代码中的样式将标签的前景色设置为白色。

窗口的背景颜色为黑色,因此组框也具有此背景。但是,工具栏的背景颜色是 System.Media.Colors.Control (或默认情况下的任何颜色),我想保持这种状态。问题是白色并不是几乎白色的最佳颜色(工具栏)。

是否可以根据容器的不同将标签的前景色设置为不同的?而且只在一个地方——在我的例子中,在主窗口的 Window.Resources 标记内。

类似这样的:

<Style TargetType="Label">
    <Setter Property="Background">
        <Setter.Value>
            <SolidColorBrush Color="White"/>
        </Setter.Value>
    </Setter>
</Style>

<Style TargetType="ToolBar.Label">
    <Setter Property="Background">
        <Setter.Value>
            <SolidColorBrush Color="Black"/>
        </Setter.Value>
    </Setter>
</Style>

谢谢,

J.

【问题讨论】:

    标签: xaml styles


    【解决方案1】:

    您可以使用控件定义资源,例如

    <ToolBar>
            <ToolBar.Resources>
                <Style TargetType="Label">
                    <Setter Property="Background">
                        <Setter.Value>
                            <SolidColorBrush Color="White"/>
                        </Setter.Value>
                    </Setter>
                </Style>
            </ToolBar.Resources>
        </ToolBar>
    

    然后工具栏中的标签将选择本地资源。

    【讨论】:

    • 嗨 D J。是的,我知道这一点。只是,如果不是绝对必要的话,我真的不想将此代码添加到每个工具栏。如果没有其他方法可以做到这一点,我想我会将工具栏的背景颜色更改为主窗口资源标签内的其他颜色。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    相关资源
    最近更新 更多