WPF text Wrap vs WrapWithOverflow

170

¿Cuál es la diferencia "conceptual" entre TextWrapping="Wrap"y TextWrapping="WrapWithOverflow"(por ejemplo, para un cuadro de texto)? En la página de MSDN sobre la clase TextBox no hay nada ... Gracias.

Daniele Armanasco
fuente

Respuestas:

187

MSDN

WrapWithOverflow Se produce un salto de línea si la línea se desborda más allá del ancho de bloque disponible. Sin embargo, una línea puede desbordarse más allá del ancho del bloque si el algoritmo de salto de línea no puede determinar una oportunidad de salto de línea, como en el caso de una palabra muy larga restringida en un contenedor de ancho fijo sin desplazamiento permitido.
NoWrap No se realiza el ajuste de línea.
El salto de línea de ajuste se produce si la línea se desborda más allá del ancho de bloque disponible, incluso si el algoritmo de salto de línea estándar no puede determinar ninguna oportunidad de salto de línea, como en el caso de una palabra muy larga restringida en un contenedor de ancho fijo sin desplazamiento permitido.

Espero que esto ayude

Arsen Mkrtchyan
fuente
11
Sé que esta pregunta se dirigió a WPF, pero pensé que valdría la pena señalar que WrapWithOverflowno es compatible con Silverlight. Solo Wrapy NoWrapson compatibles con Silverlight. msdn.microsoft.com/en-us/library/…
blachniet
3
Leí esto y todavía no estoy seguro de la diferencia. ¿Es la idea básica que WrapWithOverFlowno romperá palabras, sino que lo Wraphará?
Brian J
66
@BrianJ - Mira mi respuesta para ver algunos ejemplos.
Ken
317

Algunos ejemplos:

Esta es la versión original sin envolver:

Sin envoltura


Esto es NoWrap.

Sin envoltura


Esto es Wrap. Las palabras Removey Samplese han envuelto en vey le, respectivamente, a pesar de que no hay oportunidad de salto de línea.

Envolver


Esto es WrapWithOverflow. Los vey leno son visibles (desbordan el ancho de bloque disponible) porque no hay oportunidad de salto de línea. El All, en ambos casos, se ha envuelto porque el spacepersonaje es una oportunidad de salto de línea.

WrapWithOverflow


Editar:

Como se sugiere en los comentarios, aquí hay algunos ejemplos de cómo Wraptrata los espacios. Cuando Widthes 100, Wrapy WrapWithOverflowson idénticos. Wraptrata el espacio entre widery examplecomo una oportunidad de salto de línea, por lo que examplese coloca en una nueva línea para preservar la palabra completa y continua.

ingrese la descripción de la imagen aquí

conocido
fuente
55
Esta respuesta se beneficiaría de incluir un ejemplo de botón más (más amplio) en cada modo que tenga un salto de espacio en blanco válido. De un vistazo, implica que Wrapignora por completo los espacios en blanco, pero eso no es cierto.
Scott Stafford
8

Una cosa para agregar a las otras respuestas, WrapWithOverflow le permite usar el recorte de texto (puntos suspensivos) en las palabras largas que se cortan:

ingrese la descripción de la imagen aquí

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