Программно перейти к следующему элементу Панорамы - PullRequest
5 голосов
/ 18 марта 2011

Можно ли программно перемещаться с одной панорамной страницы / элемента на следующую и получать такой же анимированный эффект скольжения , который вы получаете при скольжении пальцем?

Я могу использовать свойство PanoramaControl.DefaultItem для перехода к ожидаемому элементу / странице, но вы не получите анимированный эффект скольжения. Есть идеи?

Ответы [ 5 ]

13 голосов
/ 29 сентября 2012

Это возможно, просто установите параметр DefaultItem между событием SlideTransition Completed, и все готово:

public static class PanoramaExtensions
{
    public static void SlideToPage(this Panorama self, int item)
    {

        var slide_transition = new SlideTransition() { };
        slide_transition.Mode = SlideTransitionMode.SlideLeftFadeIn;
        ITransition transition = slide_transition.GetTransition(self);
        transition.Completed += delegate
        {
            self.DefaultItem = self.Items[item];
            transition.Stop();
        };
        transition.Begin();
    }
}

Используйте my_panorama.SlideToPage (1), чтобы перейти на вторую страницу.

6 голосов
/ 12 декабря 2011

Вы можете использовать ниже код:

panoramaRoot.DefaultItem = (PanoramaItem)panoramaRoot.Items[1];
1 голос
/ 18 марта 2011

Я думаю, что самый простой способ достичь этого - создать отдельные визуальные состояния для каждого элемента и создать анимированные переходы слайдов для перехода в каждое состояние. Затем вы можете использовать VisualStateManager.GoToState(<page>, <state>, true);, чтобы инициировать изменение состояния.

1 голос
/ 18 марта 2011

Нет - управление панорамой не поддерживает программные манипуляции, подобные этой.

Если вам нужен подобный опыт, то вы можете попробовать рукописный контроль панорамы - например, http://phone.codeplex.com/

1 голос
/ 18 марта 2011

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

Здесь - еще один пост, в котором обсуждается это.

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