WPF 中 HTML 类 id 的等效项是什么?

2023-12-24

我有一些 StackPanel,我希望具有相同的宽度。然而,这不应该影响所有 StackPanel,我不想为此进行子类化。我知道以下情况是可能的:

<Style BasedOn="{StaticResource {x:Type TextBlock}}"
    TargetType="TextBlock"
    x:Key="TitleText">
        <Setter Property="FontSize" Value="26"/>
</Style>

...

<TextBlock Style="{StaticResource TitleText}"> 
    Some Text 
</TextBlock>

但是有没有办法让 TextBlock 不知道它的样式(就像当 HTML 与应用于元素的 CSS 规则是分开的)?

我只想给所有相关的 StackPanels 相同的类 id,然后应用 类 ID 的样式。


不幸的是,这在 WPF 中是不可能的。您可以最接近的方式是您在示例中演示的内容。

但是,如果您想将样式应用于all堆栈面板中same根容器,您可以将 Style 指定为根容器的资源,而保留x:Key属性出来。举个例子:

<Grid x:Name="LayoutRoot">
    <Grid x:Name="StackPanelsRoot">
        <Grid.Resources>
            <Style TargetType="StackPanel">
                ...
            </Style>
        </Grid.Resources>
        <StackPanel x:Name="SP1" ... />
        <StackPanel x:Name="SP2" ... />
        ...
    </Grid>
    <StackPanel x:Name="SP3" ... />
    ...
</Grid>

此处,样式将应用于SP1 and SP2,但不至于SP3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 中 HTML 类 id 的等效项是什么? 的相关文章