views:

251

answers:

1

Hi
Our application starts several background processes and put their output into TextBoxes - each in a separate TabItem in a TabControl. I want the TextBoxes to automatically scroll to show the last output line, so in the data handling function that adds the output/error line to the text box, I also call TextBox.ScrollToEnd():

void OnServerProcessOutputDataReceived(object sender, DataReceivedEventArgs e)
{
    if (e.Data != null)
    {
        Dispatcher.Invoke(new Action(() =>
            {
                TextBox tb = getServerProcessOutputTextBox(sender);
                if (tb != null)
                {
                    tb.AppendText(e.Data + Environment.NewLine);
                    tb.ScrollToEnd();
                }
            }));
    }
}

This works great for the TextBox in the active tab, but when I switch to another tab, I see that it wasn't scrolled down to the end.

Is this a known problem? Is there a way to fix it?

Thanks,
splintor

A: 

Looks like a bug... you should report it on Microsoft Connect

Thomas Levesque