This seems like such a simple thing but I just can\'t get it to work.
I have a single line text box that has a lot of text. What I want to happen is that whenever t
It is true - setting the caret property from code doesn't affect the view; and the caret can go outside the visible part.
kb_target_box.Focus(); // just for sure
Rect rect = kb_target_box.GetRectFromCharacterIndex(kb_target_box.CaretIndex);
kb_target_box.ScrollToHorizontalOffset(Math.Max((kb_target_box.HorizontalOffset + rect.Left - (kb_target_box.ActualWidth - 40)), 0.0));
h-scroll will follow the caret after it comes closer than 40 to the right TextBox border.
This worked for me.
textBox.CaretIndex = txt.Text.Length;
textBox.ScrollToEnd();
You should be able to do it using these members:
EDIT: not sure why ScrollToEnd isn't working... Anyway, this code works:
textBox.CaretIndex = textBox.Text.Length;
var rect = textBox.GetRectFromCharacterIndex(textBox.CaretIndex);
textBox.ScrollToHorizontalOffset(rect.Right);