Создание элемента управления для одновременного перемещения изображений по коллекции в Windows Phone 7 - PullRequest
2 голосов
/ 04 августа 2011

Это может показаться простым ответом, но мне нужна помощь, чтобы разобраться с этим.

У меня есть список, отображающий элементы RSS с моего сайта, привязанные к списку.Когда пользователь нажимает на определенный элемент, он переносит их на новую страницу, где отображается только это изображение.

Я хочу, чтобы пользователь мог проводить пальцем влево или вправо и иметьон загружает следующее или предыдущее изображение.

У меня есть набор инструментов с прикрепленным слушателем жестов, и я рассмотрел код этого ранее заданного вопроса (код ниже)

<Canvas>
<Image x:Name="imgImage" Source="{Binding ...}" Width="..." Height="...">
    <Image.RenderTransform>
        <CompositeTransform x:Name="imgImageTranslate" />
    </Image.RenderTransform>
</Image>

private void GestureListener_DragCompleted(object sender, DragCompletedGestureEventArgs e)
{
    if (e.Direction == System.Windows.Controls.Orientation.Horizontal)
    {
        var abs = Math.Abs(PANEL_DRAG_HORIZONTAL);
        if (abs > 75)
        {
            if (PANEL_DRAG_HORIZONTAL > 0) // MovePrevious;
            else //MoveNext();

            e.Handled = true;
        }
    }
}


double PANEL_DRAG_HORIZONTAL = 0;
private void GestureListener_DragDelta(object sender, DragDeltaGestureEventArgs e)
{
        if (e.Direction == System.Windows.Controls.Orientation.Horizontal)
        {
            PANEL_DRAG_HORIZONTAL += e.HorizontalChange;

            var baseLeft = -imgImage.Width / 2;
            if (PANEL_DRAG_HORIZONTAL > 75) imgImageTranslate.OffsetX = baseLeft + PANEL_DRAG_HORIZONTAL;
            else if (PANEL_DRAG_HORIZONTAL < -75) imgImageTranslate.OffsetX = baseLeft + PANEL_DRAG_HORIZONTAL;
            else imgImageTranslate.OffsetX = baseLeft;
        }
    }
}

private void GestureListener_DragStarted(object sender, DragStartedGestureEventArgs e)
{
    PANEL_DRAG_HORIZONTAL = 0;
}

Проблема, с которой я сталкиваюсь, заключается в том, как я могу создать вызовы функций MoveNext () и MovePrevious () со списком привязки к данным.

Код, который у меня есть, теперь получает корневой визуальный элемент.из списка RSS SelectedItem, который является URL для изображения в Интернете, и передает его как на следующей странице.

Но как я смогу ссылаться на следующую картинку слева или справа (вдоль массива списка)?

1 Ответ

2 голосов
/ 05 августа 2011

Вы можете «обмануть» и сделать это с помощью сводной страницы, как это сделали другие, чтобы создать сводную страницу с «бесконечной прокруткой».

создайте сводку без заголовка и полей для отображения вашего изображения. пусть шарнир справится со всеми ударами. добавить слушателя, чтобы наблюдать за изменениями в элементе сводки

, но создайте только 5 основных элементов, и выбранный элемент изменится, циклически переключаясь из вашего списка / массива.

Здесь гораздо больше деталей: Endless Pivot Control

...