Bungkus teks WPF vs WrapWithOverflow

170

Apa perbedaan "konseptual" antara TextWrapping="Wrap"dan TextWrapping="WrapWithOverflow"(misalnya untuk TextBox)? Di halaman MSDN tentang TextBox kelas tidak ada ... Terima kasih.

Daniele Armanasco
sumber

Jawaban:

187

MSDN

WrapWithOverflow Pemecahan garis terjadi jika garis meluap melebihi lebar blok yang tersedia. Namun, sebuah garis dapat meluap melebihi lebar blok jika algoritma pemecah garis tidak dapat menentukan peluang jeda baris, seperti dalam kasus kata yang sangat panjang dibatasi dalam wadah lebar-tetap tanpa pengguliran yang diizinkan.
NoWrap Tidak ada pembungkus garis yang dilakukan.
Wrap Line-breaking terjadi jika garis meluap melebihi lebar blok yang tersedia, bahkan jika algoritma garis standar tidak dapat menentukan peluang garis putus, seperti dalam kasus kata yang sangat panjang dibatasi dalam wadah lebar-tetap tanpa pengguliran diperbolehkan.

Semoga ini membantu

Arsen Mkrtchyan
sumber
11
Saya tahu pertanyaan ini diarahkan pada WPF, tapi saya pikir mungkin perlu dicatat bahwa WrapWithOverflowtidak didukung di Silverlight. Hanya Wrapdan NoWrapdidukung di Silverlight. msdn.microsoft.com/en-us/library/…
blachniet
3
Saya membaca ini dan masih belum yakin bedanya. Apakah ide dasar yang WrapWithOverFlowtidak akan melanggar kata-kata, tetapi Wrapakan?
Brian J
6
@ BrianJ - Lihat jawaban saya untuk beberapa contoh.
ken
317

Beberapa contoh:

Ini adalah versi asli, yang belum dibuka:

Tidak ada pembungkus


Ini NoWrap.

NoWrap


Ini Wrap. Kata-kata Removedan Sampletelah dibungkus di vedan le, masing-masing, meskipun tidak ada peluang garis istirahat.

Membungkus


Ini WrapWithOverflow. Tanda vedan letidak terlihat (meluap lebar blok yang tersedia) karena tidak ada peluang jeda baris. Itu All, dalam kedua kasus, telah dibungkus karena spacekarakter adalah kesempatan untuk istirahat.

WrapWithOverflow


Edit:

Seperti yang disarankan dalam komentar, berikut adalah beberapa contoh cara Wrapmemperlakukan ruang. Ketika Widthini 100, Wrapdan WrapWithOverflowidentik. Wrapmemperlakukan ruang di antara widerdan examplesebagai peluang pemisah -baris, demikian examplejuga ditempatkan pada baris baru untuk mempertahankan keseluruhan kata yang berkelanjutan.

masukkan deskripsi gambar di sini

ken
sumber
5
Jawaban ini akan mendapat manfaat dengan memasukkan satu lagi contoh tombol (lebih luas) di setiap mode yang memang memiliki jeda ruang kosong yang valid. Sepintas, itu menyiratkan bahwa Wrapsepenuhnya mengabaikan istirahat spasi, tetapi itu tidak benar.
Scott Stafford
8

Satu hal untuk ditambahkan ke jawaban lain, WrapWithOverflow memungkinkan Anda menggunakan pemangkasan teks (ellipsis) pada kata-kata panjang yang terpotong:

masukkan deskripsi gambar di sini

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