Hay muchas preguntas similares sobre Internet, incluidas SO, pero las soluciones propuestas no funcionan en mi caso. Escenario: hay un cuadro de texto de registro en xamlCuadro de texto de líneas múltiples con desplazamiento vertical automático
<TextBox Name="Status"
Margin="5"
Grid.Column="1"
Grid.Row="5"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="600"
Height="310"/>
hay métodos de código subyacente que hacer algún trabajo y añadir un poco de líneas múltiples (tal vez ese es el problema?) Mensajes en el campo respectivo:
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
}
Necesita desplazarse a la parte inferior del cuadro de texto después de que se lleven a cabo todas las acciones. Probé ScrollToEnd(), ScrollToLine, envolviendo textbox en ScrollViewer, Selection y Caret workarounds, adjuntando ScrollToEnd a TextChanged. Nada de esto funciona, después de que las líneas de ejecución que desbordan la altura del cuadro de texto todavía tienen que desplazarse manualmente. Perdón por la pregunta duplicada, creo que me faltan algunos problemas menores que pueden ser resueltos rápidamente por alguien que tenga una nueva visión del problema. Gracias por adelantado.
Cuando dice que necesita "desplazarse hasta [la] parte inferior de [los] texto", ¿realmente quiere decir "desplazarse" como en "el último texto anexado es completamente visible"? ¿O quieres que el cursor esté al final del cuadro de texto? –
Primero. Para ilustrar hice una captura de pantalla: a la izquierda está lo que obtengo, a la derecha es lo que necesito (como desplazamiento manual hacia abajo): http://i.piccy.info/i7/0c105234c75b7031df050587f72771b4/1-5-3848/56682026/120120114019_6.jpg – Jaded