Declaring Text Decorations such as Underline, Stri

2019-01-23 10:53发布

How do I include text decorations such as Underline, Strikethrough etc in a Style definition:

<Style x:Key="UnderlinedLabel">
     <Setter Property="Control.FontFamily" Value="Trebuchet MS" />
     <Setter Property="Control.FontSize" Value="14" />
     <!-- Next line fails -->
     <Setter Property="Control.TextDecorations" Value="Underline" />
</Style>

I'm familiar with using the following XAML to underline text:

<TextBlock>
   <Underline>
       Underlined text
   </Underline>
</TextBlock>

However text decoration is just another style, I want to be able to define it declaritively like FontWeight, FontSize etc.

[Update]

I was applying this style to a Label control. This was my main problem. It appears you can't underline text in a Label. Change to a TextBlock (thanks gix) and all is well.

1条回答
家丑人穷心不美
2楼-- · 2019-01-23 11:15

Underlining text can be done either with <Underline>...</Underline> or with the TextDecorations attribute set to Underline. You can include the latter in a style definition:

<Style x:Key="Underlined">
    <Setter Property="TextBlock.TextDecorations" Value="Underline" />
</Style>

<TextBlock Style="{StaticResource Underlined}">
    Foo
</TextBlock>
查看更多
登录 后发表回答