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 にアタッチすることを試しました。テキストボックスの高さを超える行を実行した後も、手動でスクロールする必要があります。質問が重複して申し訳ありません。問題について新鮮なビジョンを持っている人がすぐに解決できる小さな問題がいくつか欠けていると思います。前もって感謝します。