Многострочный для WPF TextBox - PullRequest
       13

Многострочный для WPF TextBox

331 голосов
/ 16 апреля 2010

Я разрабатываю приложение для отправки отзывов.

В основном я пытаюсь сделать TextBox для комментариев, но я привык к WinForms MultiLine=true. Я установил MinLines на 3, что уже получается, но желательно, чтобы он мне нравился, если пользователь может печатать где угодно в этом блоке - например, нажимать ввод и делать точки с точками. Например:

- Item 1        blah
- Item 2                blahlb lahbvl   d

Но на данный момент весь текст остается на одной строке.

- Item 1         blah - Item 2                      blahb blahb blah

Эти комментарии помогут заполнить тело отправляемого электронного письма. Это может быть бессмысленно, если я не могу легко сохранить то же форматирование при помещении этой строки в строку тела письма (чтобы она выглядела так, как при отправке, как при вводе).

Могу ли я достичь того, что мне нужно, или мне нужно оставить все текст в одной строке?

Ответы [ 5 ]

702 голосов
/ 16 апреля 2010

Включить TextWrapping="Wrap" и AcceptsReturn="True" в вашем TextBox.

Вы также можете включить AcceptsTab и SpellCheck.IsEnabled.

34 голосов
/ 17 января 2012

Кроме того, если вы, подобно мне, добавляете элементы управления непосредственно в XAML (без использования редактора), вы можете быть разочарованы тем, что он не растянется до доступной высоты, даже после установки этих двух свойств.

Чтобы растянуть TextBox, установите Height="Auto".

UPDATE:

Оглядываясь назад, я думаю, что это должно было быть необходимо благодаря стилю по умолчанию для текстовых полей, определяющему высоту до некоторого стандарта для приложения где-то в ресурсах приложения. Возможно, стоит проверить это, если это вам помогло.

15 голосов
/ 28 декабря 2016

Вот пример XAML, который позволит TextBox принимать многострочный текст и использует собственные полосы прокрутки:

<TextBox
Height="200"
Width="500"
TextWrapping="Wrap"
AcceptsReturn="True"
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto"/>
11 голосов
/ 06 мая 2013

В отличие от @Andre Luus, установка Height="Auto" не приведет к растяжению TextBox. Решение, которое я нашел, было установить VerticalAlignment="Stretch"

1 голос
/ 22 июня 2019

Свойство only , соответствующее в WPF свойству Winforms TextBox.Multiline = true, равно TextBox.AcceptsReturn = true.

<TextBox AcceptsReturn="True" ...... />

Все остальные настройки, такие как VerticalAlignement, WordWrap и т. Д., Только контролируют взаимодействие TextBox в пользовательском интерфейсе, но не влияют на поведение Multiline.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...