【问题标题】:Putting Styles on controls inside a Grid style将样式放在网格样式内的控件上
【发布时间】:2010-07-05 12:40:37
【问题描述】:

我想'定义网格中特定类型的每个控件都有一个样式。这很容易,只需将带有 TargetType 的样式放在网格资源中即可。但是如果我不想重用这个网格作为一种样式呢?

我可以创建一个网格样式并有一个资源设置器,但只能在其中放置一种样式。

<Style x:Key="GridStyle" TargetType="Grid">
    <Setter Property="Resources">
        <Setter.Value>
            <Style TargetType="TextBlock" BasedOn="{StaticResource MainText}" />
            <Style TargetType="{x:Type RowDefinition}">
                <Setter Property="Height" Value="Auto"/>
            </Style>
            <Style TargetType="Button" BasedOn="{StaticResource MainButton}" />
        </Setter.Value>
    </Setter>
</Style>

不起作用,因为 setter 只能放入一种样式。

这可能很简单,但我不明白,我不想在每个网格中重复这些样式。

【问题讨论】:

    标签: wpf resources grid styles setter


    【解决方案1】:

    如果你把 Styles 放在外部样式的 Resources 中,它们将在网格内的范围内:

    <Style x:Key="GridStyle" TargetType="Grid">
        <Style.Resources>
            <Style TargetType="TextBlock" BasedOn="{StaticResource MainText}" />
            <Style TargetType="{x:Type RowDefinition}">
                <Setter Property="Height" Value="Auto"/>
            </Style>
            <Style TargetType="Button" BasedOn="{StaticResource MainButton}" />
        </Style.Resources>
    </Style>
    

    【讨论】:

    • 必须是这样简单的东西。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 2011-08-09
    • 2020-07-09
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多