Estou desenvolvendo um aplicativo para enviar algum feedback.
Basicamente, estou tentando fazer TextBox
comentários, mas estou acostumado com o WinForms MultiLine=true
. Eu configurei MinLines
para 3, que está chegando lá, mas de preferência eu gostaria que o usuário pudesse digitar em qualquer parte deste bloco - como pressionar enter e fazer pontos por pontos. Por exemplo:
- Item 1 blah
- Item 2 blahlb lahbvl d
Mas, no momento, todo o texto permanece em uma linha.
- Item 1 blah - Item 2 blahb blahb blah
Esses comentários ajudarão a preencher o corpo de um email enviado. Pode ser inútil se eu não conseguir manter facilmente a mesma formatação ao colocar essa string na string do corpo do email (para que pareça quando é enviada quando é digitada).
Posso alcançar o que estou procurando ou tenho que deixá-lo como todo o texto em uma linha?
label1.Content = textBox1.Text.Length;
com esta linha, seu trabalho, mas quando eu pressionar enter no contador da caixa de texto, aumentará 2 caracteres. como posso fazer esta tarefa, por favor me ajude.textBox1.Text.Replace("\r\n", " ").Length
. Porém, tenha cuidado: se isso significa feedback do usuário porque seu back-end limita o número de caracteres, pode ser necessário contar o CR / LF como dois caracteres, se é assim que o back-end o contará!Além disso, se, como eu, você adicionar controles diretamente no XAML (sem usar o editor), poderá ficar frustrado por não esticar até a altura disponível, mesmo depois de definir essas duas propriedades.
Para fazer o TextBox esticar, defina o
Height="Auto"
.ATUALIZAR:
Em retrospecto, acho que isso deve ter sido necessário, graças a um estilo padrão para TextBoxes, especificando a altura de algum padrão para o aplicativo em algum lugar nos recursos do aplicativo. Pode valer a pena verificar isso se isso o ajudou.
fonte
Aqui está o exemplo
XAML
que permitiráTextBox
aceitar texto de várias linhas e usa suas próprias barras de rolagem:fonte
Ao contrário de @Andre Luus, a configuração
Height="Auto"
não fará oTextBox
alongamento. A solução que encontrei foi definirVerticalAlignment="Stretch"
fonte
A única propriedade correspondente no WPF ao
Propriedade Winforms :
TextBox.Multiline = true
é o WPF propriedade:
TextBox.AcceptsReturn = true
.Todas as outras configurações, como
VerticalAlignement
,WordWrap
etc., controlam apenas como o TextBox interage na interface do usuário, mas não afeta oMultiline
comportamento.fonte