2011-10-20 12 views
5

Mam styl WPF, który ustawia właściwość zależności TextDecorations dla TargetType: TexBlock. Muszę użyć tego samego stylu dla niektórych elementów Run, które są w niektórych TextBlock, które same nie używają wspomnianego wcześniej stylu. Jak mogę to osiągnąć bez powtarzania tego samego stylu za pomocą innego TargetType?Użyj tego samego stylu dla elementu TextBlock i Run

Odpowiedz

5

Tylko nie określić TargetType jednak zakwalifikować właściwość, np:

<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> 

Jeśli chcesz rozwijać styl można użyć BasedOn, pozwala to również niejawny stosowania wspomnianego stylu przez nie ustawianie klucza w stylu pochodnym.

+0

Wow. Próbowałem tego samego, ale ustawiłem 'Property =" TextDecorations "' zamiast 'Property =" Inline.TextDecorations "', i dostałem błąd "FrameworkElement nie zawiera ...". Dodawanie "Inline". rzeczywiście działa. –

+0

Jestem zainteresowany podstawowym mechanizmem, który to umożliwia, czy możesz rzucić trochę światła lub kilka linków? –

+0

@ H.B. - czy istnieje sposób na wykrycie tego bez odzwierciedlenia kodu? Czy w MSDN jest powiedziane, że 'TextBlock.TextDecorations' 'porywa'' Inline.TextDecorations'? –

Powiązane problemy