Подтвердить что ты не робот

WPF TextBlock подчеркивает

У меня есть textblock of width say 500, но моя строка просто говорит "H", но я хочу underline всю ширину textblock не только под H, что я могу сделать?

4b9b3361

Ответ 1

Вы должны использовать свойство TextDecorations для TextBlock. Например:

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

Ответ 2

Просто добавьте свои 2 цента. Тот же эффект, что и ответ Talia, может быть достигнут во время выполнения через этот код:

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

По какой-то причине VS2010 не показывает Intellisense для RHS, но он компилируется и работает правильно.

Ответ 3

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

Ответ 4

Лучше всего использовать прямоугольник, расположенный сразу под текстовым блоком, ширина которого всегда равна ширине текстового блока. Вот так:

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