在互联网上有许多类似的问题,包括SO,但提议的解决方案在我的情况下不起作用.场景:xaml中有一个日志文本框
<TextBox Name="Status"
Margin="5"
Grid.Column="1"
Grid.Row="5"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="600"
Height="310"/>
Run Code Online (Sandbox Code Playgroud)
在代码隐藏中有一些方法可以做一些工作并在这个文本框中添加一些多行(可能就是问题?)消息:
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
}
Run Code Online (Sandbox Code Playgroud)
执行所有操作后,需要滚动到文本框的底部.尝试ScrollToEnd(),ScrollToLine,将文本框包装到ScrollViewer,Selection和Caret解决方法,将ScrollToEnd附加到TextChanged.在溢出文本框高度的执行行仍然需要手动滚动之后,这些都不起作用.对不起重复的问题,我想我错过了一些小问题,可以由对问题有新见解的人迅速解决.提前致谢.
这看起来很简单,但我无法让它发挥作用.
我有一个单行文本框,有很多文本.我想要发生的是,只要文本框获得焦点,它就会滚动到文本的末尾,以便它进入视图,光标在最后准备好接受新文本.
在文本框的GotFocus事件中,我调用textBox.ScrollToEnd().看起来所有这一切都是将光标移动到文本框的末尾,但实际上并没有将结束视图.
我错过了什么?