2011-10-23 18 views
30

Stworzyłem mały graficzny interfejs użytkownika z WPF, zawierający Textbox. Chcę, aby użytkownik miał możliwość uruchomienia nowej linii. Jak pozwolić użytkownikowi na rozpoczęcie nowej linii w polu tekstowym WPF (z \ n lub \ r)? Chcę, aby użytkownik mógł uruchomić nową linię, naciskając "enter".Rozpocznij nową linię w WPF textbox

Odpowiedz

60

Czy spróbować ustawić na swoim polu tekstowym następującą właściwość:

TextWrapping="Wrap" 
VerticalScrollBarVisibility="Visible" (or auto) 
AcceptsReturn="True" 
+0

Czy przewijanie tekstu jest koniecznością? Czy VerticalScrollBarVisibility to konieczność? Zauważ, że AcceptsReturn to bool, a nie ciąg, ale łatwo to zrozumieć. – user34660

+0

Nie, funkcja TextWrapping nie jest konieczna ani VerticalScrollBarVisibility. AcceptsReturn to bool, ale w XAML wciąż ustawiasz go tak, jakby był ciągiem dokładnie takim, jak pokazuje ta odpowiedź. – maplemale

12

Formant pola tekstowego ma właściwość "AcceptsReturn" (True/False), którą należy ustawić na True.

Można go ustawić w oknie Właściwości Visual Studio IDE lub ustawić w kodzie.

textbox1.AcceptsReturn = true; 
6

Oprócz właściwości AcceptReturn = true, jeśli użytkownik chce rozpocząć nowy wiersz, naciskając klawisz trzeba będzie sprawdzić wejść te właściwości:

  1. IsReadOnly powinny być fałszywe. Jeśli ustawisz na True, to oczywiście klawisz Enter nie będzie działać.
  2. Sprawdź, czy kontrolka zawierająca TextBox nie obcinuje ramki TextBox, w przeciwnym razie pojawi się informacja, że ​​klawisz Enter nie działa.