我有一些 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(使用前将#替换为@)