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?
Vous devez utiliser la propriété "TextDecorations" du TextBlock. Comme ça:
<TextBlock Text="H" TextDecorations="Underline"/>
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.
<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>
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>