У меня есть textblock
of width
say 500
, но моя строка просто говорит "H", но я хочу underline
всю ширину textblock
не только под H, что я могу сделать?
WPF TextBlock подчеркивает
Ответ 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>