Tôi đang tạo ứng dụng ảnh, sử dụng FlipView
và listView
làm Phân trang. Khi tôi nhấp vào hình ảnh thu nhỏ trong ListView
, nó cho tôi thấy cùng một hình ảnh trong FlipView
. Và khi tôi vuốt vào FlipView
, bất kỳ ảnh nào được chọn sẽ chọn cùng một ảnh trong ListView
. Này được thực hiện bằng cách thêm vào cả trong số họ:Tính toán bù trừ ngang để cuộn ListView đến trung tâm của SelectedItem
Đối với ListView
:
SelectedIndex="{Binding Path=SelectedIndex, ElementName=flipView1, Mode=TwoWay}
Và đến FlipView
:
SelectedIndex="{Binding Path=SelectedIndex, ElementName=listView1, Mode=TwoWay}
Và với sự kiện ListView SelectionChanged
Tôi nói thêm:
if (e.AddedItems.Count > 0)
listView1.ScrollIntoView(e.AddedItems.First(), ScrollIntoViewAlignment.Leading);
Vấn đề duy nhất của tôi là khi tôi vuốt FlipView
, ảnh mong muốn được chọn trong ListView
nhưng ScrollViewer
không được cuộn đến ảnh đó. Tôi đã cố gắng sử dụng WinRTXamlToolkit
để thay đổi vị trí của các ScrollViewer
:
private void pageRoot_Loaded()
{
// count number of all items
int itemCount = this.listView1.Items.Count;
if (itemCount == 0)
return;
if (listView1.SelectedIndex >= itemCount)
listView1.SelectedIndex = itemCount - 1;
// calculate x-posision of selected item
double listWidth = this.listView1.ActualWidth;
double xPos = (listWidth/itemCount) * listView1.SelectedIndex;
// scroll
var scrollViewer2 = listView1.GetFirstDescendantOfType<ScrollViewer>();
if (scrollViewer2 != null)
scrollViewer2.ChangeView(xPos, 0.0, 1);
}
Lần đầu tiên listWidth
là 1600.0
và sau đó nó trở thành 0.0
tất cả các thời gian, mang đến cho xPos = 0.0
!
Làm cách nào để khắc phục sự cố này?
một 'ListViewItem' có một' phương pháp BringIntoView' – Julien
'BringIntoView' không tồn tại trong Windows 8.1! 'BringIntoViewOnFocusChanged' tồn tại cho' ScrollViewer' nhưng nó không hoạt động như mong đợi! – yalematta
Danh sách của bạn có cuộn dọc hay ngang không? Tôi sẽ cố gắng kiểm tra dbl nhưng đưa vào xem tôi nghĩ là trên listview1. Tất cả các mục của bạn có cùng kích thước trong listview không? – Quincy