だいぶ二番煎じかと思われますが,
自分メモとして残します.
テキストが追加されたときに
自動的に最後尾までスクロールしてくれる TextBox は何かと便利です.
しかし,これを実現するためには
MSDN にもあるように C# コードで次のようにする必要があります.
1 2 3 4 5 |
<TextBox Name="tbPositionCursor" > Here is some text in my text box... </TextBox> |
1 |
tbPositionCursor.Select(tbPositionCursor.Text.Length, 0); |
これだけのために C# コードを書かないといけないのはなんだか美しくない.
ということでもう少し調べてみたら,ScrollViewer を利用する方法が紹介されていました.
ScrollViewer には ScrollToBottom() というメソッドがあり,
TextBox の TextChanged イベントでこのメソッドをコールするという方法です.
相変わらず C# コード書かないといけないのは変わらないんですが,
自分は TextBox を自分好みにしたカスタムコントロールを使っていて,
TextBox を ScrollViewer でラップしていたので,
これを利用することにしました.
カスタムコントロールの実装部では C# コードから ScrollToBottom() メソッドをコールしていますが,
このコントロ-ルを使う側では,IsAutoVerticalScroll プロパティを True に設定するだけで
自動スクロールが実現されるという仕様にしたので,
かなり使い勝手が良くなりました.