textblock
のwidth
があります500
が、私の文字列は "H"とだけ言っていますが、Hの下だけでなくunderline
幅全体をtextblock
にしたいのです。
TextBlockのプロパティ「TextDecorations」を使用する必要があります。そのように:
<TextBlock Text="H" TextDecorations="Underline"/>
私の2セントを追加するだけで、Taliaの答えと同じ効果がこのコードを通じて実行時に達成できます。
YourTextBlock.TextDecorations = System.Windows.TextDecorations.Underline;
何らかの理由で、VS2010はRHSに対してIntellisenseを表示しませんが、コンパイルして正常に実行します。
<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>
最善の策は、おそらくテキストブロックのすぐ下に配置された四角形を使用することです。その幅は常にテキストブロックの幅です。このような:
<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>