0

我来自很多年的 html 和 css,所以在样式方面我搜索相同的使用模式。这次我需要定义一个由单个元素使用的外部样式(如 css 的#id),并自动使用 x:Key->Style(或 css 中的 .class)区分它们的子元素。问题是我只能通过元素类型来区分,并且相同类型的所有元素都获得相同的样式。目前我发现的唯一解决方案是使用内联样式或创建全新的样式定义,但这会降低可读性和长期可管理性。

我需要做这样的工作:外部风格

<Style TargetType="DockPanel" x:Key="MenuPrincipale">
    <Setter Property="Width" Value="100"/>
    <Style.Resources>
        <Style TargetType="StackPanel" x:Key="some_class">
            <Setter Property="Margin" Value="5,40,5,0"/>
        </Style>
    </Style.Resources>
</Style>

Xaml

<DockPanel Style="{StaticResource MenuPrincipale}">
    <StackPanel Style="{StaticResource some_class}">
        <Label Foreground="White">this is styled</Label>
    </StackPanel>
    <StackPanel>
        <Label Foreground="White">this is NOT styled</Label>
    </StackPanel>
</DockPanel>
4

1 回答 1

0

我不完全确定您在问什么,但是通过使用 basedOn 标记来查看样式的继承。

于 2013-10-30T20:54:00.843 回答