web-dev-qa-db-fra.com

Souligné WPF TextBlock

J'ai un textblock de width disons 500, mais ma chaîne dit simplement "H" mais je veux underline toute la largeur textblock pas seulement sous H que puis-je faire?

49
user679530

Vous devez utiliser la propriété "TextDecorations" du TextBlock. Comme ça:

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

Juste pour ajouter mes 2 cents, le même effet que la réponse de Talia peut être obtenu lors de l'exécution via ce code:

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

Pour une raison quelconque, VS2010 n'affiche pas Intellisense pour le RHS, mais il se compile et s'exécute correctement.

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

Votre meilleur pari serait probablement d'utiliser un rectangle placé immédiatement en dessous du bloc de texte, dont la largeur est toujours la largeur du bloc de texte. Comme ça:

<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