【发布时间】:2011-08-01 21:39:41
【问题描述】:
我有一个textblock 的width 说500,但我的字符串只是说“H”但我想underline 整个textblock 宽度不只是在H 下我该怎么办?
【问题讨论】:
-
你想要文本框的底部边框还是特别想要文本下划线?
标签: c# visual-studio windows-phone textblock underline
我有一个textblock 的width 说500,但我的字符串只是说“H”但我想underline 整个textblock 宽度不只是在H 下我该怎么办?
【问题讨论】:
标签: c# visual-studio windows-phone textblock underline
<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>
【讨论】:
<Run> 标记分隔文本,然后使用<Run Text="This is a "/> <Underline><Run Text="good "/></Underline> <Run Text="solution."/>这个解决方案对我的要求帮助很大。只要加上我的2美分,就可以通过这段代码在运行时达到和Talia的回答一样的效果:
YourTextBlock.TextDecorations = System.Windows.TextDecorations.Underline;
由于某种原因,VS2010 没有显示 RHS 的 Intellisense,但它可以正确编译和运行。
【讨论】:
您最好的选择可能是使用位于文本块正下方的矩形,其宽度始终是文本块的宽度。像这样:
<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>
【讨论】:
您应该使用 TextBlock 的属性“TextDecorations”。像这样:
<TextBlock Text="H" TextDecorations="Underline"/>
【讨论】: