Jaka jest „koncepcyjna” różnica między TextWrapping="Wrap"
i TextWrapping="WrapWithOverflow"
(np. W przypadku TextBox)? Na stronie MSDN o klasie TextBox nie ma nic ... Dziękuję.
Jaka jest „koncepcyjna” różnica między TextWrapping="Wrap"
i TextWrapping="WrapWithOverflow"
(np. W przypadku TextBox)? Na stronie MSDN o klasie TextBox nie ma nic ... Dziękuję.
Odpowiedzi:
WrapWithOverflow Łamanie linii występuje, gdy linia przekracza dostępną szerokość bloku. Jednak linia może wykraczać poza szerokość bloku, jeśli algorytm łamania linii nie może określić możliwości podziału wiersza, jak w przypadku bardzo długiego słowa ograniczonego w kontenerze o stałej szerokości bez przewijania.
NoWrap Nie jest wykonywane zawijanie linii.
Zawijanie Łamanie linii występuje, gdy linia przekracza dostępną szerokość bloku, nawet jeśli standardowy algorytm łamania linii nie może określić żadnej możliwości podziału wiersza, jak w przypadku bardzo długiego słowa ograniczonego w kontenerze o stałej szerokości bez przewijania.
Mam nadzieję że to pomoże
WrapWithOverFlow
która nie złamie słów, ale Wrap
będzie?
Kilka przykładów:
To jest oryginalna, rozpakowana wersja:
To jest NoWrap
.
To jest Wrap
. Słowa Remove
i Sample
zostały opakowane odpowiednio na ve
i le
, mimo że nie ma możliwości przełamania wiersza.
To jest WrapWithOverflow
. Elementy ve
i le
nie są widoczne (przekraczają dostępną szerokość bloku), ponieważ nie ma możliwości podziału wiersza. W All
obu przypadkach space
znak został zawinięty, ponieważ znak jest okazją do podziału wiersza.
Edytować:
Jak zasugerowano w komentarzach, oto kilka przykładów Wrap
traktowania spacji. Gdy Width
jest 100
, Wrap
i WrapWithOverflow
są identyczne. Wrap
traktuje odstęp pomiędzy wider
i example
jako możliwość podziału wiersza, więc example
jest umieszczany w nowym wierszu, aby zachować całe, ciągłe słowo.
Wrap
całkowicie ignoruje spacje, ale to nieprawda.
Jedną rzeczą do dodania do innych odpowiedzi, WrapWithOverflow umożliwia użycie przycinania tekstu (wielokropka) na długich wyrazach, które są ucinane:
<TextBlock TextWrapping="WrapWithOverflow" Width="120" TextTrimming="CharacterEllipsis">
A really long word is antidisestablishmentarianism and we can use ellipsis trimming.
</TextBlock>
WrapWithOverflow
nie jest obsługiwane w Silverlight. TylkoWrap
iNoWrap
są obsługiwane w Silverlight. msdn.microsoft.com/en-us/library/…