Я разрабатываю приложение для отправки отзывов.
В основном я пытаюсь сделать TextBox
для комментариев, но я привык к WinForms MultiLine=true
. Я установил MinLines
на 3, что уже получается, но желательно, чтобы он мне нравился, если пользователь может печатать где угодно в этом блоке - например, нажимать ввод и делать точки с точками. Например:
- Item 1 blah
- Item 2 blahlb lahbvl d
Но на данный момент текст все остается на одной строке.
- Item 1 blah - Item 2 blahb blahb blah
Эти комментарии помогут заполнить тело отправленного электронного письма. Это может быть бессмысленно, если я не могу легко сохранить одинаковое форматирование при помещении этой строки в строку тела письма (чтобы она выглядела так, как при отправке, как при вводе).
Могу ли я достичь того, что мне нужно, или я должен оставить все текст в одной строке?
label1.Content = textBox1.Text.Length;
с этой строкой, его работа, но когда я нажимаю ввод в текстовом поле, счетчик увеличит 2 символа. как я могу сделать эту задачу, пожалуйста, помогите мне.textBox1.Text.Replace("\r\n", " ").Length
. Однако будьте осторожны: если это подразумевается как обратная связь с пользователем, поскольку ваш бэкэнд ограничивает количество символов, вам может потребоваться посчитать CR / LF как два символа, если бэкэнд будет это считать!Кроме того, если, как и я, вы добавляете элементы управления непосредственно в XAML (без использования редактора), вы можете быть разочарованы тем, что он не растянется до доступной высоты даже после установки этих двух свойств.
Чтобы растянуть TextBox, установите
Height="Auto"
.ОБНОВИТЬ:
Оглядываясь назад, я думаю, что это должно было быть необходимо благодаря стилю по умолчанию для TextBox, определяющему высоту до некоторого стандарта для приложения где-то в ресурсах приложения. Возможно, стоит проверить это, если это вам помогло.
источник
Вот пример
XAML
, который позволитTextBox
принимать многострочный текст и использует собственные полосы прокрутки:источник
В отличие от @Andre Luus, установка
Height="Auto"
не будетTextBox
растягиваться. Решение, которое я нашел, было установитьVerticalAlignment="Stretch"
источник
Единственное свойство , соответствующее в WPF к
Свойство Winforms :
TextBox.Multiline = true
это WPF свойство:
TextBox.AcceptsReturn = true
.Все остальные параметры, такие как
VerticalAlignement
иWordWrap
т. Д., Только контролируют взаимодействие TextBox в пользовательском интерфейсе, но не влияют на егоMultiline
поведение.источник