Ci sono un sacco di domande simili su internet, su SO incluso, ma le soluzioni proposte non funzionano nel mio caso. Scenario: v'è una casella di testo di log in XAMLCasella di testo multilinea con scorrimento verticale automatico
<TextBox Name="Status"
Margin="5"
Grid.Column="1"
Grid.Row="5"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="600"
Height="310"/>
ci sono metodi in code-behind che fare un certo lavoro e aggiungere un po multilinea (forse questo è il problema?) I messaggi in questo campo testo:
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
}
È necessario scorrere fino alla fine della casella di testo dopo che tutte le azioni sono state eseguite. Provato ScrollToEnd(), ScrollToLine, avvolgendo textbox in ScrollViewer, selezione e caret workaround, allegando ScrollToEnd a TextChanged. Nessuno di questi funziona, dopo che le righe di esecuzione che superano l'altezza del textbox devono ancora essere fatte scorrere manualmente. Ci scusiamo per la doppia domanda, credo che mi manchino alcuni problemi minori che possono essere risolti rapidamente da qualcuno che ha una nuova visione del problema. Grazie in anticipo.
Quando si dice che è necessario "scorrere fino al [la] parte inferiore di [the] textbos", si intende veramente "scorrimento" come in "l'ultimo testo aggiunto è completamente visibile"? O vuoi che il cursore si trovi alla fine della casella di testo? –
Primo. Per illustrare fatto uno screenshot - a sinistra è quello che ottengo, giusto è quello che mi serve (come scorrere manualmente verso il basso): http://i.piccy.info/i7/0c105234c75b7031df050587f72771b4/1-5-3848/56682026/120120114019_6.jpg – Jaded