我在设置滚动查看器垂直滚动位置(C#,Windows应用商店应用)时遇到问题。
我有一个FlipView,其中包含2到5个项目。 Item是我自己的用户控件 - Scroll Viewer中的Grid。 当当前选择的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;
我不知道,为什么会这样。任何人都可以帮忙吗?