【发布时间】:2011-10-20 12:32:01
【问题描述】:
我有一个 WPF 样式,它为 TargetType: TexBlock 设置 TextDecorations 依赖属性。我需要对某些本身不使用上述样式的 TextBlock 中的某些 Run 元素使用相同的样式。如何在不使用不同的TargetType 重复相同样式的情况下实现这一点?
【问题讨论】:
我有一个 WPF 样式,它为 TargetType: TexBlock 设置 TextDecorations 依赖属性。我需要对某些本身不使用上述样式的 TextBlock 中的某些 Run 元素使用相同的样式。如何在不使用不同的TargetType 重复相同样式的情况下实现这一点?
【问题讨论】:
只是不要指定TargetType,而是限定属性,例如:
<Style x:Key="CommonStyle">
<Setter Property="Inline.TextDecorations" Value="StrikeThrough" />
</Style>
<TextBlock Style="{StaticResource CommonStyle}" Text="Lorem Ipsum" />
<TextBlock>
<Run Style="{StaticResource CommonStyle}" Text="Lorem" />
<Run Text="Ipsum" />
</TextBlock>
如果您想进一步开发可以使用BasedOn 的样式,这也允许通过不对派生样式设置键来隐式应用所述样式。
【讨论】:
Property="TextDecorations" 而不是Property="Inline.TextDecorations",并得到错误“FrameworkElement 不包含...”。添加“内联”。确实有效。
TextBlock.TextDecorations '绑架' Inline.TextDecorations?