2013-10-11 2 views
2

У меня есть приложение WPF с текстовым полем, на которое я отправляю текст на протяжении всего цикла работы приложения. Поскольку я беру данные в текстовое поле, чтобы получать обновления из приложения, я хочу, чтобы текст внутри текстового поля прокручивался вниз с данными. Прямо сейчас полоса прокрутки находится в верхней части текстового поля, и мне нужно прокрутить вниз, чтобы увидеть, что было вставлено в элемент управления. Как я могу его обмануть, поэтому мне не нужно прокручивать вниз, чтобы увидеть текст?Прокрутка текста внутри текстового поля

ответ

1

Почему бы вам не использовать ListBox вместо TextBox, а затем привязать его к ObservableCollection на вашем ViewModel.

public ObservableCollection<string> MyUpdates {get; set;} 

Затем, когда вы обновляете сообщение (от вашей модели), вы можете просто добавить его в голова коллекции:

MyUpdates.Insert(0, your_message_here); 

Ваше мнение автоматически обновляется и новые сообщения находятся на Вверх.

(Вы, вероятно, может играть с различными контейнерами для этого, в зависимости от того, что вы хотите, и если вы хотите scrolbar или нет. Посмотрите на this для примера)

1

Существует метод на TextBox только для это: TextBox.ScrollToEnd().

Вызовите этот метод, когда текст добавляется к TextBox.

Смежные вопросы