web-dev-qa-db-ja.com

WPF TextBlock下線

textblockwidthがあります500が、私の文字列は "H"とだけ言っていますが、Hの下だけでなくunderline幅全体をtextblockにしたいのです。

49
user679530

TextBlockのプロパティ「TextDecorations」を使用する必要があります。そのように:

 <TextBlock Text="H" TextDecorations="Underline"/>
184
Talia H

私の2セントを追加するだけで、Taliaの答えと同じ効果がこのコードを通じて実行時に達成できます。

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

何らかの理由で、VS2010はRHSに対してIntellisenseを表示しませんが、コンパイルして正常に実行します。

20
dotNET
        <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>
6
Ilker Baltaci

最善の策は、おそらくテキストブロックのすぐ下に配置された四角形を使用することです。その幅は常にテキストブロックの幅です。このような:

<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>
0
thefellow3j