Tworzę aplikację do przesyłania opinii.
Zasadniczo próbuję zrobić TextBox
komentarz, ale jestem przyzwyczajony do WinForm MultiLine=true
. Ustawiłem MinLines
3, co się tam dzieje, ale najlepiej byłoby, gdyby użytkownik mógł pisać gdziekolwiek w tym bloku - na przykład naciśnij enter i rób punkty kropkowe. Na przykład:
- Item 1 blah
- Item 2 blahlb lahbvl d
Ale w tej chwili tekst pozostaje w jednym wierszu.
- Item 1 blah - Item 2 blahb blahb blah
Te komentarze pomogą następnie wypełnić treść wysłanego e-maila. 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, aby wyglądał tak, jak po wysłaniu, tak jak podczas pisania).
Czy mogę osiągnąć to, czego szukam, czy muszę to zostawić jako cały tekst w jednym wierszu?
label1.Content = textBox1.Text.Length;
pola tekstowego w tej linii, jego działanie, ale po naciśnięciu Enter w polu tekstowym licznik zwiększy 2 znaki. jak mogę wykonać to zadanie, pomóżcie mi.textBox1.Text.Replace("\r\n", " ").Length
. Bądź jednak ostrożny: jeśli ma to być opinia użytkownika, ponieważ twój zaplecze ogranicza liczbę znaków, być może będziesz musiał policzyć CR / LF jako dwa znaki, jeśli tak to będzie liczyć!Ponadto, jeśli, podobnie jak ja, dodasz elementy sterujące bezpośrednio w XAML (nie używając edytora), możesz być sfrustrowany, że nie rozciągnie się na dostępną wysokość, nawet po ustawieniu tych dwóch właściwości.
Aby rozciągnąć TextBox, ustaw
Height="Auto"
.AKTUALIZACJA:
Patrząc wstecz, myślę, że musiało to być konieczne dzięki domyślnemu stylowi TextBox, określając wysokość do pewnego standardu dla aplikacji gdzieś w zasobach aplikacji. Warto to sprawdzić, jeśli to ci pomogło.
źródło
Oto przykład
XAML
, który pozwoliTextBox
zaakceptować tekst wielowierszowy i używa własnych pasków przewijania:źródło
W przeciwieństwie do @Andre Luus, ustawienie
Height="Auto"
nie spowodujeTextBox
rozciągnięcia. Rozwiązaniem, które znalazłem, było ustawienieVerticalAlignment="Stretch"
źródło
Nieruchomość tylko odpowiada w WPF do
Właściwość Winforms :
TextBox.Multiline = true
jest WPF właściwość:
TextBox.AcceptsReturn = true
.Wszystkie inne ustawienia, takie jak
VerticalAlignement
,WordWrap
itd., Tylko kontrolować, w jaki sposób współdziała TextBox w interfejsie, lecz nie wpływa naMultiline
zachowanie.źródło