我在设置 Scroll Viewer 垂直滚动位置(C#,Windows Store App)时遇到问题。
我有一个 FlipView,其中包含 2 到 5 个项目。项目是我自己的用户控件 - 滚动查看器中的网格。当当前选定的 FlipView 项目滚动位置已更改时,我需要将滚动位置更改为所有 FlipView 项目。
在我的用户控件中,我使用事件:
private void MyScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
_myPage.ChangeFlipViewItemsScrollPosition(MyScrollViewer.VerticalOffset);
}
在我的页面中,我使用方法:
public void ChangeFlipViewItemsScrollPosition(double verticalOffset)
{
for (int i = 0; i < MyFlipView.Items.Count; i++)
{
MyUserControl item = MyFlipView.Items[i] as MyUserControl;
if (item != null && i != MyFlipView.SelectedIndex)
{
item.MyScrollViewer.ChangeView(null, verticalOffset, null);
}
}
}
问题是:
例如,我在 FlipView 中有 5 个项目。
当 FlipView 选择索引为:
0 然后它将滚动位置更改为具有索引的项目:1 和 2;
1 然后它将滚动位置更改为索引为:0 和 2 的项目;
2 然后它将滚动位置更改为索引为:0、1 和 3 的项目;
3 然后它将滚动位置更改为索引为:2 和 4 的项目;
4 然后它将滚动位置更改为具有索引的项目:3;
我不知道,为什么会这样。有人能帮忙吗?