我可以在Silverlight 4中定义如下样式:
<Style x:Name="Subtitle" TargetType="TextBlock">
<Setter Property="Foreground" Value="#787878" />
<Setter Property="FontWeight" Value="Light" />
</Style>但是,我也希望将这些属性应用于Run。TargetType是否可以有多个值,或者以某种方式将这些样式向下传播到树中?
发布于 2010-12-09 10:55:25
通常,您可以创建一个以通用基类为目标的样式,然后创建从该基样式派生的空样式以以特定类为目标。然而,在TextBlock和Run的情况下,它们不共享公共基类,事实上,由于Run不是从FrameworkElement派生的,它甚至没有Style属性。
然而,如果你在询问一个运行是否会继承它的父TextBlock的前景/字体属性,那么它会的。但是您不能独立于其包含的TextBlock而将此样式应用于Run。
另一种选择是为前景画笔和字体粗细创建静态资源,如下所示:
<Grid
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid.Resources>
<FontWeight x:Key="SubtitleFontWeight">Light</FontWeight>
<SolidColorBrush x:Key="SubtitleForeground" Color="#787878" />
</Grid.Resources>
<TextBlock>
<Run Text="Hello " />
<Run Text="World!"
Foreground="{StaticResource SubtitleForeground}"
FontWeight="{StaticResource SubtitleFontWeight}" />
</TextBlock>
</Grid>发布于 2010-12-09 13:52:22
没有..。一种风格-一种TargetType...
https://stackoverflow.com/questions/4394351
复制相似问题