66

我有一个textblock说法width500但我的字符串只是说“H”,但我想要underline整个textblock宽度,而不仅仅是 H 我能做什么?

4

4 回答 4

214

您应该使用 TextBlock 的属性“TextDecorations”。像那样:

 <TextBlock Text="H" TextDecorations="Underline"/>
于 2012-02-22T07:18:16.960 回答
24

只需添加我的 2 美分,就可以通过以下代码在运行时实现与 Talia 的答案相同的效果:

YourTextBlock.TextDecorations = System.Windows.TextDecorations.Underline;

出于某种原因,VS2010 没有为 RHS 显示 Intellisense,但它可以正确编译和运行。

于 2013-09-05T04:18:19.457 回答
14
        <TextBlock VerticalAlignment="Bottom" 
                   HorizontalAlignment="Center" 
                   Margin="40" 
                   Height="40" 
                   FontSize="16" 
                   Tapped="TextBlock_Tapped"
                   Text="Text"
                   Foreground="{StaticResource LightBlue}">
            <Underline>
                <Run Text="Text"/>
            </Underline>
        </TextBlock>
于 2015-03-23T09:16:11.577 回答
1

您最好的选择可能是使用位于文本块正下方的矩形,其宽度始终是文本块的宽度。像这样:

<DockPanel LastChildFill="False">
    <TextBlock DockPanel.Dock="Top" x:Name="blockToUnderline" Text="H" Width="76" />
    <Rectangle DockPanel.Dock="Top" Fill="Black" Height=1 Width="{Binding ElementName=blockToUnderline, Path=ActualWidth}" />
</DockPanel>
于 2013-07-02T16:37:38.540 回答