Testo WPF Wrap vs WrapWithOverflow


170

Qual è la differenza "concettuale" tra TextWrapping="Wrap"e TextWrapping="WrapWithOverflow"(ad esempio per un TextBox)? Nella pagina MSDN sulla classe TextBox non c'è nulla ... Grazie.

Risposte:


187

MSDN

WrapWithOverflow La interruzione di linea si verifica se la linea trabocca oltre la larghezza del blocco disponibile. Tuttavia, una linea può traboccare oltre la larghezza del blocco se l'algoritmo di interruzione di linea non è in grado di determinare un'opportunità di interruzione di linea, come nel caso di una parola molto lunga vincolata in un contenitore a larghezza fissa senza scorrimento consentito.
NoWrap Non viene eseguito alcun avvolgimento di riga.
La fine della linea a capo si verifica se la linea trabocca oltre la larghezza del blocco disponibile, anche se l'algoritmo di interruzione di linea standard non è in grado di determinare alcuna opportunità di interruzione di linea, come nel caso di una parola molto lunga vincolata in un contenitore a larghezza fissa senza scorrimento consentito.

Spero che questo ti aiuti


11
So che questa domanda era rivolta a WPF, ma ho pensato che valesse la pena notare che WrapWithOverflownon è supportato in Silverlight. Solo Wrape NoWrapsono supportati in Silverlight. msdn.microsoft.com/en-us/library/...
blachniet

3
Ho letto questo e non sono ancora sicuro della differenza. L'idea di base WrapWithOverFlownon romperà le parole, ma lo Wrapfarà?
Brian J,

6
@BrianJ - Vedi la mia risposta per alcuni esempi.
Ken,

317

Qualche esempio:

Questa è la versione originale da scartare:

Nessun avvolgimento


Questo è NoWrap.

NoWrap


Questo è Wrap. Le parole Removee Samplesono state racchiuse in vee le, rispettivamente, anche se non vi è alcuna opportunità di interruzione di riga.

avvolgere


Questo è WrapWithOverflow. I vee lenon sono visibili (superano la larghezza del blocco disponibile) perché non esiste alcuna opportunità di interruzione di riga. Il All, in entrambi i casi, è stato racchiuso perché il spacepersonaggio è un'opportunità di interruzione di riga.

WrapWithOverflow


Modificare:

Come suggerito nei commenti, ecco alcuni esempi di come Wraptratta gli spazi. Quando Widthè 100, Wrape WrapWithOverflowsono identici. Wrapconsidera lo spazio tra widere examplecome un'opportunità di interruzione di riga, quindi exampleviene inserito in una nuova riga per preservare l'intera parola continua.

inserisci qui la descrizione dell'immagine


5
Questa risposta trarrebbe beneficio dall'includere un altro esempio di pulsante (più ampio) in ciascuna modalità che presenta un'interruzione di spazio bianca valida. A prima vista, implica che Wrapignora completamente le interruzioni degli spazi bianchi, ma ciò non è vero.
Scott Stafford,

8

Una cosa da aggiungere alle altre risposte, WrapWithOverflow ti consente di usare il taglio del testo (puntini di sospensione) sulle parole lunghe che vengono tagliate:

inserisci qui la descrizione dell'immagine

<TextBlock TextWrapping="WrapWithOverflow" Width="120" TextTrimming="CharacterEllipsis">
    A really long word is antidisestablishmentarianism and we can use ellipsis trimming.
</TextBlock>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.