WP7 динамический круг - PullRequest
       1

WP7 динамический круг

3 голосов
/ 29 марта 2011

У меня проблемы с реализацией динамического управления поворотом.То, что я хотел бы сделать, это создать галерею изображений с помощью оси, где вы можете изменить изображение, проводя.Это изначально работает с элементом управления pivot, связывая его источник элементов в моей наблюдаемой коллекции для отображения одного изображения на каждом элементе pivotitem.Дело в том, что это решение занимает много памяти, когда моя галерея содержит более 10 изображений, так как оно создает одинаковое количество сводных элементов.

Я попытался инициализировать мою коллекцию из 3 элементов, отображаемых в данный момент.предыдущий и следующий, и когда пользователь проводит, я обновил свой список.Я попробовал это, используя событие «SelectionChanged», а также с помощью слушателя жестов ... пока безуспешно.Кто-нибудь когда-нибудь пытался это сделать?И если да, как я могу это реализовать?

Ответы [ 3 ]

2 голосов
/ 29 марта 2011

Я делаю нечто подобное, но не использую элемент управления Pivot.Загрузите набор инструментов Silverlight (http://silverlight.codeplex.com/) и используйте GestureListener для перехвата действия смахивания:

<toolkit:GestureService.GestureListener>
        <toolkit:GestureListener DragCompleted="OnDrag"/>
</toolkit:GestureService.GestureListener>

Затем в коде у вас есть обработчик событий, который перехватывает событие смахивания и соответственно обновляет изображение.обработчик событий, который я использую для изменения своей страницы:

private void OnDrag(object sender, DragCompletedGestureEventArgs e)
{
    if (e.Direction == System.Windows.Controls.Orientation.Horizontal)
    {
        if (e.HorizontalChange < 0)
        {
            TurnPagesForward(1);
        }
        else
        {
            TurnPagesBackward(1);
        }
    }
}
1 голос
/ 29 марта 2011

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

  • Что может сработать, это следующее (но я его не проверял):
  • Начните с начальной коллекции из пяти предметов.
  • Убедитесь, что вы отображаете третий элемент в списке, чтобы видимый элемент находился в середине списка.
  • При изменении видимой страницы возникает событие SelectionChanged.
  • При перемещении вправо выбранный индекс изменяется на четвертый элемент.В этом случае вы удаляете первый элемент в списке и добавляете новый пятый элемент.
  • Если вы двигаетесь влево, вы делаете противоположное и удаляете последний элемент в списке.

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

Я не уверен, сработает ли это, но стоит попробовать,: -)

0 голосов
/ 29 марта 2011

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

Хотя было бы очень хорошо, если бы можно было использовать элемент управления pivot для создания простого элемента управления перемещением изображений, которого просто нет.практично.Вам нужно будет пойти по более сложному пути, чтобы сделать это самостоятельно другим методом.(Многие люди пробовали разные способы. Пойдите с тем, что лучше для ваших потребностей / опыта / предпочтений.)

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