Wpf TextBox.ScrollToEnd不';当文本框处于非活动选项卡中时不工作
我们的应用程序启动几个后台进程,并将它们的输出放入文本框中——每个文本框都位于TabControl中一个单独的TabItem中。我希望文本框自动滚动以显示最后一个输出行,因此在将输出/错误行添加到文本框的数据处理函数中,我还调用TextBox.ScrollToEnd() 这对于活动选项卡中的文本框非常有用,但是当我切换到另一个选项卡时,我看到它没有向下滚动到最后Wpf TextBox.ScrollToEnd不';当文本框处于非活动选项卡中时不工作,wpf,textbox,scroll,Wpf,Textbox,Scroll,我们的应用程序启动几个后台进程,并将它们的输出放入文本框中——每个文本框都位于TabControl中一个单独的TabItem中。我希望文本框自动滚动以显示最后一个输出行,因此在将输出/错误行添加到文本框的数据处理函数中,我还调用TextBox.ScrollToEnd() 这对于活动选项卡中的文本框非常有用,但是当我切换到另一个选项卡时,我看到它没有向下滚动到最后 这是一个已知的问题吗?有办法修复吗?看起来像个bug。。。您应该在设置CaretIndex时报告: if (tb != null
这是一个已知的问题吗?有办法修复吗?看起来像个bug。。。您应该在设置CaretIndex时报告:
if (tb != null)
{
tb.AppendText(e.Data + Environment.NewLine);
tb.CaretIndex = tb.Text.Length;
tb.ScrollToEnd();
}
除非文本框有focus:tb.focus(),否则这个解决方案对我不起作用。这个10年前的错误仍然存在。如果在此之后以编程方式将焦点移开,则它仍然无法执行此操作。以下是如何执行此操作的答案:
if (tb != null)
{
tb.AppendText(e.Data + Environment.NewLine);
tb.CaretIndex = tb.Text.Length;
tb.ScrollToEnd();
}