Có rất nhiều câu hỏi tương tự trên internet, bao gồm SO, nhưng các giải pháp được đề xuất không hoạt động trong trường hợp của tôi. Kịch bản: có một textbox log trong XAMLHộp văn bản nhiều dòng với cuộn dọc tự động
<TextBox Name="Status"
Margin="5"
Grid.Column="1"
Grid.Row="5"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="600"
Height="310"/>
Có nhiều phương pháp trong mã-đằng sau đó làm một số công việc và thêm một số multiline (có lẽ đó là vấn đề?) Thông điệp vào ô này:
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
}
Cần cuộn xuống cuối hộp văn bản sau khi tất cả các hành động diễn ra. Đã thử ScrollToEnd(), ScrollToLine, gói textbox vào các giải pháp ScrollViewer, Selection và Caret, đính kèm ScrollToEnd vào TextChanged. Không có công cụ nào trong số này hoạt động, sau khi các đường thực hiện mà chiều cao hộp văn bản tràn vẫn cần phải được cuộn theo cách thủ công. Xin lỗi cho câu hỏi trùng lặp, tôi đoán tôi đang thiếu một số vấn đề nhỏ có thể được giải quyết nhanh chóng bởi một ai đó có tầm nhìn mới về vấn đề này. Cảm ơn trước.
Khi bạn nói bạn cần phải "cuộn xuống [cuối] của [textbos]", bạn có thực sự muốn "di chuyển" như trong "văn bản nối tiếp cuối cùng có thể nhìn thấy hoàn toàn" không? Hay bạn muốn dấu mũ ở cuối hộp văn bản? –
Đầu tiên. Để minh họa ảnh chụp màn hình - bên trái là những gì tôi nhận được, đúng là những gì tôi cần (như cuộn xuống theo cách thủ công): http://i.piccy.info/i7/0c105234c75b7031df050587f72771b4/1-5-3848/56682026/120120114019_6.jpg – Jaded