Multiline for WPF TextBox

Rozwijam aplikację do wysyłania opinii.

W zasadzie staram się zrobić TextBox dla komentarzy, ale jestem przyzwyczajony do WinForms MultiLine=true. Ustawiłem MinLines na 3, który się zbliża, ale najlepiej, jeśli użytkownik jest w stanie wpisać gdziekolwiek w tym bloku - jak nacisnąć enter i zrobić punkty dot coś w tym stylu. Na przykład:

- Item 1        blah
- Item 2                blahlb lahbvl   d

Ale w tej chwili tekst pozostaje w jednej linijce.

- Item 1         blah - Item 2                      blahb blahb blah

Te komentarze pomogą wypełnić treść wiadomości e-mail, która jest wysłane. Może to być bezcelowe, jeśli nie mogę łatwo zachować tego samego formatowania podczas umieszczania tego ciągu w treści wiadomości e-mail (tak, że wygląda tak, jak robi, gdy jest wysyłany, jak robi, gdy jest pisany).

Czy mogę osiągnąć to, czego chcę, czy muszę zostawić to jako cały tekst w jednej linijce?

Author: Samuel Slade, 2010-04-16

4 answers

Włącz TextWrapping="Wrap" i AcceptsReturn="True" w swoim polu tekstowym.

Możesz również włączyć AcceptsTab i SpellCheck.IsEnabled.

 645
Author: itowlson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-02 07:32:16

Ponadto, jeśli, tak jak ja, dodasz kontrolki bezpośrednio w XAML (nie używając edytora), możesz być sfrustrowany, że nie rozciągnie się do dostępnej wysokości, nawet po ustawieniu tych dwóch właściwości.

Aby rozciągnąć pole tekstowe, Ustaw Height="Auto".

UPDATE:

Z perspektywy czasu myślę, że musiało to być konieczne dzięki domyślnemu stylowi dla pól tekstowych określających wysokość do jakiegoś standardu dla aplikacji gdzieś w zasobach aplikacji. Może warto sprawdzam, czy to ci pomogło.

 31
Author: Andre Luus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-12 09:51:43

W przeciwieństwie do @ Andre Luus, ustawienie Height="Auto" nie spowoduje rozciągnięcia TextBox. Rozwiązaniem, które znalazłem było ustawienie VerticalAlignment="Stretch"

 10
Author: Elkvis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-17 11:53:33

Oto przykład XAML, który pozwoli TextBox zaakceptować tekst wielowierszowy i używa własnych pasków przewijania:

<TextBox
Height="200"
Width="500"
TextWrapping="Wrap"
AcceptsReturn="True"
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto"/>
 9
Author: IT Captain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-28 08:18:46