Por ejemplo, como la ventana "Salida" de Visual Studio sí.¿Cómo hacer que WPF TextBox con una barra de desplazamiento se desplace automáticamente hacia la parte inferior cuando se agregan líneas?
¿Hay alguna manera de hacerlo en XAML?
Por ejemplo, como la ventana "Salida" de Visual Studio sí.¿Cómo hacer que WPF TextBox con una barra de desplazamiento se desplace automáticamente hacia la parte inferior cuando se agregan líneas?
¿Hay alguna manera de hacerlo en XAML?
Puede siempre que agregue contenido a ese TextBox o cuando escuche el evento TextChanged active este método: TextBoxBase.ScrollToEnd()
.
Puede escribir un attached property o mejor aún un behavior que escuche el TextChanged event y el scrolls to the bottom en la devolución de llamada.
El comportamiento de la ventana de salida de Visual Studio es especial, ya que solo mantendrá el desplazamiento automático hacia abajo si el cursor está al final del cuadro de texto, que le permite examinar la salida sin molestarse si se le agregan nuevas líneas.
Tengo tal comportamiento con este código
bool scrollToEnd = TbEvents.CaretIndex == TbEvents.Text.Length;
TbEvents.AppendText(text + Environment.NewLine);
if (scrollToEnd)
{
TbEvents.CaretIndex = TbEvents.Text.Length;
TbEvents.ScrollToEnd();
}