web-dev-qa-db-fra.com

Texte WPF Wrap vs WrapWithOverflow

Quelle est la différence "conceptuelle" entre TextWrapping="Wrap" et TextWrapping="WrapWithOverflow" (par exemple pour une zone de texte)? Dans la page MSDN sur la classe TextBox, il n'y a rien ... Merci.

160
Daniele Armanasco

MSDN

WrapWithOverflow Une coupure de ligne se produit si la ligne dépasse de la largeur de bloc disponible. Toutefois, une ligne peut dépasser de la largeur du bloc si l'algorithme de saut de ligne ne peut pas déterminer une opportunité de saut de ligne, comme dans le cas d'un très long mot contraint dans un conteneur de largeur fixe sans défilement autorisé.
NoWrap Aucun retour à la ligne n'est effectué.
Wrap Une coupure de ligne se produit si la ligne dépasse de la largeur de bloc disponible, même si l'algorithme de coupure de ligne standard ne peut pas déterminer de saut de ligne. comme dans le cas d’un très long mot contraint dans un conteneur de largeur fixe sans défilement autorisé.

J'espère que cela t'aides

181
Arsen Mkrtchyan

Quelques exemples:

Ceci est la version originale non emballée:

No wrapping


C'est NoWrap.

NoWrap


C'est Wrap. Les mots Remove et Sample ont été encapsulés à la ve et le, respectivement, même s’il n’existe aucune possibilité de changement de ligne.

Wrap


C'est WrapWithOverflow. Les ve et le ne sont pas visibles (ils dépassent la largeur de bloc disponible) car il n'y a pas d'opportunité de changement de ligne. Le All, dans les deux cas, a été encapsulé car le caractère space est une opportunité de changement de ligne.

WrapWithOverflow


Edit:

Comme suggéré dans les commentaires, voici quelques exemples de la manière dont Wrap traite les espaces. Quand Width est 100, Wrap et WrapWithOverflow sont identiques. Wrap traite l'espace entre wider et example comme une opportunité de saut de ligne, donc example est placé sur une nouvelle ligne afin de préserver l'intégralité du mot Word continu. .

enter image description here

295
ken

Une chose à ajouter aux autres réponses, WrapWithOverflow vous permet d’utiliser le rognage de texte (Ellipsis) pour les mots longs coupés:

enter image description here

<TextBlock TextWrapping="WrapWithOverflow" Width="120" TextTrimming="CharacterEllipsis">
    A really long Word is antidisestablishmentarianism and we can use Ellipsis trimming.
</TextBlock>
0
Vimes