Na przykład takie jak okno "Wyjście" Visual Studio.Jak zrobić WPF TextBox za pomocą paska przewijania automatycznie przewija się do dołu po dodaniu linii?
Czy można to zrobić w XAML?
Na przykład takie jak okno "Wyjście" Visual Studio.Jak zrobić WPF TextBox za pomocą paska przewijania automatycznie przewija się do dołu po dodaniu linii?
Czy można to zrobić w XAML?
Możesz dodawać zawartość do tego okna TextBox lub podczas słuchania zdarzenia Pożar TextChanged ta metoda: TextBoxBase.ScrollToEnd()
.
Mogłeś napisać attached property lub jeszcze lepiej w behavior że słucha TextChanged event i scrolls to the bottom w zwrotnego.
Zachowanie okna wyników wyjściowych Visual Studio jest wyjątkowe, ponieważ przewijanie automatyczne będzie kontynuowane tylko wtedy, gdy karetka znajduje się na końcu pola tekstowego, co pozwala sprawdzić wynik bez przeszkadzania w dodawaniu nowych linii.
Mam taki problem z tym kodem
bool scrollToEnd = TbEvents.CaretIndex == TbEvents.Text.Length;
TbEvents.AppendText(text + Environment.NewLine);
if (scrollToEnd)
{
TbEvents.CaretIndex = TbEvents.Text.Length;
TbEvents.ScrollToEnd();
}