2011-10-20 14 views
5

Tengo un estilo de WPF que establece TextDecorations propiedad de dependencia para TargetType: TexBlock. Necesito usar el mismo estilo para ciertos elementos de ejecución que están en algún bloque de texto que no usa el estilo antes mencionado. ¿Cómo puedo lograr esto sin repetir el mismo estilo con solo un TargetType diferente?Usar el mismo estilo para TextBlock y elemento de ejecución

Respuesta

5

Simplemente no especifica un TargetType pero califica la propiedad, por ejemplo:

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

Si desea desarrollar aún más el estilo puedes utilizar BasedOn, esto también permite la aplicación implícita de dicho estilo al no establecer una clave en el estilo derivado.

+0

Wow. Intenté exactamente lo mismo, pero configuré 'Property =" TextDecorations "' en lugar de 'Property =" Inline.TextDecorations "', y obtuve el error "FrameworkElement no contiene ...". Añadiendo "En línea". de hecho funciona –

+0

Estoy interesado en el mecanismo subyacente que lo habilita, ¿podría por favor arrojar algo de luz o algunos enlaces? –

+0

@ H.B. - ¿Hay alguna manera de detectar esto sin reflejar el código? ¿Se dice en el MSDN en algún lugar que 'TextBlock.TextDecorations' 'secuestra' el' Inline.TextDecorations'? –

Cuestiones relacionadas