(Windows Phone 8.1) Trong ứng dụng của tôi, tôi có một MainPage với một hộp danh sách. NavigationCacheMode được đặt thành bắt buộc để bảo toàn trạng thái khi điều hướng quay lại cùng một trang.Listbox nhảy lên trên cùng khi tiếp tục cuộn từ vị trí cuối cùng
public MainPage()
{
this.InitializeComponent();
this.DataContext = this;
// cache page
this.NavigationCacheMode = NavigationCacheMode.Required;
}
Vì vậy, khi tôi đi đến một trang khác và trở lại everthing Mainpage của tôi trông giống như tôi rời nó. Listbox cũng ở vị trí corrent. Nhưng bất cứ khi nào tôi chạm vào nó, nó sẽ nhảy lên trên cùng trước khi nó cuộn ...
Làm cách nào để nó tiếp tục cuộn trước khi lên đầu tiên?
EDIT: đã giải quyết
Dường như Listbox bị lỗi trong WP8.1, hãy sử dụng ListView thay thế!
Tôi cũng gặp lỗi này. Có cách nào để sử dụng bảng điều khiển ảo hóa nhưng tự khôi phục vị trí cuộn không? –
Có thể, nhưng tiếc là nó là một số nỗ lực cần thiết. Trước tiên, bạn phải quét VisualTree để tìm ScrollViewer (cuối http://msdn.microsoft.com/en-us/library/bb613579(v=vs.110).aspx) chỉ hoạt động sau khi hiển thị danh sách xong . Sau khi bạn đã có ScrollViewer, bạn có thể trích xuất bù ngang/dọc và lưu nó. Khi trở lại trang đó, bạn phải quét lại VisualTree, sau khi bạn đã tải ScrollViewer và nội dung danh sách được hiển thị, bạn có thể cuộn đến vị trí đã lưu của bạn (ScrollViewer.ChangeView). Tôi thấy không có cách nào tốt đẹp để chờ đợi hiển thị cho đến nay:/ – eberthold
Giải pháp này hoạt động miễn là NavigationCacheMode được đặt thành Tắt. Tất nhiên, bây giờ nó bị vô hiệu hóa, bạn phải tự theo dõi bất kỳ thuộc tính giao diện người dùng nào bạn muốn tồn tại. Tôi đã không tìm ra một cách để sử dụng kỹ thuật này với bộ nhớ đệm, bởi vì ListView nhảy không tải, nhưng khi bạn chạm vào nó một lần nữa để di chuyển. –