Scroll Viewer の垂直スクロール位置の設定に問題があります (C#、Windows ストア アプリ)。
2 ~ 5 個のアイテムを含む FlipView があります。アイテムは私自身のユーザー コントロール - スクロール ビューアーのグリッドです。現在選択されている 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 の場合、スクロール位置を index: 0 と 2 の項目に変更します。
2 次に、スクロール位置をインデックス 0、1、3 のアイテムに変更します。
3 次に、スクロール位置を index: 2 と 4 のアイテムに変更します。
4 次に、スクロール位置を index: 3; のアイテムに変更します。
なぜそれが起こっているのか、私にはわかりません。誰でもこれを手伝ってもらえますか?