这看起来很简单,但我无法让它发挥作用.
我有一个单行文本框,有很多文本.我想要发生的是,只要文本框获得焦点,它就会滚动到文本的末尾,以便它进入视图,光标在最后准备好接受新文本.
在文本框的GotFocus事件中,我调用textBox.ScrollToEnd().看起来所有这一切都是将光标移动到文本框的末尾,但实际上并没有将结束视图.
我错过了什么?
Tho*_*que 18
你应该可以使用这些成员来做到这一点:
编辑:不知道为什么ScrollToEnd不工作...无论如何,这段代码有效:
textBox.CaretIndex = textBox.Text.Length;
var rect = textBox.GetRectFromCharacterIndex(textBox.CaretIndex);
textBox.ScrollToHorizontalOffset(rect.Right);
Run Code Online (Sandbox Code Playgroud)
小智 5
的确如此-从代码中设置插入符号属性不会影响视图;插入符号可以移到可见部分之外。
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));
Run Code Online (Sandbox Code Playgroud)
h-scroll将在插入符号距离右侧TextBox边界40以外的位置时跟随插入符号。
| 归档时间: |
|
| 查看次数: |
9556 次 |
| 最近记录: |