Многострочный Текстовое поле с автоматической вертикальной прокруткой

Есть много похожих вопросов по Интернету, включая SO, но предлагаемые решения не работают в моем случае. Сценарий: в xaml есть текстовое поле журнала

 <TextBox Name="Status"
          Margin="5"
          Grid.Column="1"
          Grid.Row="5"
          HorizontalAlignment="Left"
          VerticalAlignment="Top"
          Width="600"
          Height="310"/>

. В коде программной части есть методы, которые выполняют некоторую работу и добавляют в это текстовое поле несколько многострочных (может быть, проблема?) Сообщений:

private static void DoSomeThings(TextBox textBox)
{
   // do work
   textBox.AppendText("Work finished\r\n"); // better way than Text += according to msdn
   // do more
   textBox.AppendText("One more message\r\n");
   ...
}

private static void DoSomething2(TextBox textBox)
{
   // same as first method
}

Необходимо прокрутить текстовое поле вниз после все действия происходят. Пробовал ScrollToEnd (), ScrollToLine, перенос текстового поля в обходные пути ScrollViewer, Selection и Caret, прикрепляя ScrollToEnd к TextChanged. Ничего из этого не работает, после выполнения строк, которые превышают высоту текстового поля, все равно необходимо прокрутить вручную. Извините за повторяющийся вопрос, я думаю, мне не хватает некоторых незначительных проблем, которые могут быть быстро решены кем-то, у кого есть свежее видение проблемы. Заранее спасибо.

41
задан Doom5 9 February 2017 в 08:02
поделиться