如何使标签文本下划线?

Posted

技术标签:

【中文标题】如何使标签文本下划线?【英文标题】:How to make Label Text Underline? 【发布时间】:2014-05-01 19:20:47 【问题描述】:

如何在 WPF 中创建 Label 文本 Underline?我被卡住了,找不到下划线的任何属性:

<Label Name="lblUserName"
       Content="Username"
       FontSize="14" FontWeight="Medium" />

【问题讨论】:

【参考方案1】:

Label 没有TextDecorations,因此试试这个:

<Label Width="100" Height="30">
    <TextBlock TextDecorations="Underline">TestText</TextBlock>
</Label>

Edit: more universal solution

在这种情况下,不要使用Label.Tag,而不是Label.Content,因为 Content 属性只能设置一次:

<Label Tag="TestContent" 
       Width="100" 
       Height="30"
       HorizontalContentAlignment="Center"
       Background="AliceBlue">

    <TextBlock TextDecorations="Underline" 
               Text="Binding Path=Tag, 
                              RelativeSource=RelativeSource Mode=FindAncestor,
                                                             AncestorType=x:Type Label" />
</Label>

【讨论】:

【参考方案2】:

这是一个关于样式的答案。

内容:

<Label>
    <TextBlock Style="DynamicResource StyleName">text content</TextBlock>
</Label>

还有风格:

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

【讨论】:

【参考方案3】:

这是一种将样式直接应用于标签的方法:

<Style TargetType="Label">
    <Setter Property="ContentTemplate">
        <Setter.Value>
            <DataTemplate>
                <TextBlock Text="Binding" TextDecorations="Underline"/>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

这简化了标签项:

<Label>
    Label 1
</Label>

<Label Grid.Row="1">
    Label 2
</Label>

如果标签的内容仅为文本,则此方法有效。

【讨论】:

以上是关于如何使标签文本下划线?的主要内容,如果未能解决你的问题,请参考以下文章

如何使标签文本中的链接可用于语音(可访问性)? (iOS,Xamarin)

如何使文本下划线并同时删除文本

如何使用 iText 7 使下划线文本可访问

Markdown - 如何给文本加下划线

如何在绘图标题或标签中为文本加下划线? (ggplot2)

HTMLHTML 标签 ③ ( 文本格式化标签 | 加粗 | 斜体 | 下划线 | 删除线 | 标签属性 | 图像标签 | 图像标签属性 )