1

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; のアイテムに変更します。

なぜそれが起こっているのか、私にはわかりません。誰でもこれを手伝ってもらえますか?

4

1 に答える 1