Используйте один и тот же стиль для элемента TextBlock и Run - PullRequest
5 голосов
/ 20 октября 2011

У меня есть стиль WPF, который устанавливает TextDecorations свойство зависимости для TargetType: TexBlock. Мне нужно использовать один и тот же стиль для определенных элементов Run, которые находятся в некотором TextBlock, который сам не использует вышеупомянутый стиль. Как я могу добиться этого, не повторяя один и тот же стиль с другим TargetType?

1 Ответ

5 голосов
/ 20 октября 2011

Только не указывайте 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, это также позволяет неявно применять указанный стиль, не устанавливая ключ в производном стиле.

...