WPF Pages Slide - PullRequest
       41

WPF Pages Slide

0 голосов
/ 20 декабря 2018

У меня есть приложение, созданное с использованием WPF, у меня есть несколько страниц и форма, содержащая фрейм, и я загружаю страницы в фрейм, и на каждой странице есть кнопки «Назад» и «Далее».

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

как это сделать?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Что ж, я считаю, что самым простым решением было бы отказаться от использования Frames и реализовать собственный механизм навигации, используя что-то вроде TransitioningContentControl (поэтому вам не нужно реализовывать переходы изнуля).

По сути, у вас будет список ваших элементов управления, TransitionContentControl и две кнопки (назад и вперед).Поэтому все, что вам нужно сделать, это обработать щелчки на кнопках и соответственно установить Transition (например, когда нажата кнопка «Назад», установите его на Left и загрузите предыдущую страницу).

0 голосов
/ 20 декабря 2018

Я могу ошибаться, но я не верю, что WPF предлагает способ легко реализовать это.Существуют методы для переопределения существующих анимаций перехода в UWP .

. Для WPF вы можете справиться с этим одним из двух способов ...

  • Запустить анимацию выдвигающейся страницы.Когда анимация будет завершена, пусть она вызовет событие, которое затем вызовет фрейм для смены страниц.

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

или ....

  • Захватить событие Navigating кадра, монитор NavigationMode, вызвать анимацию, заставить навигацию ждать или отметить e.Handled == true и вспомните это после с флагом, который говорит, что это может продолжаться.

    Сделайте то же самое для перехода в.

Вот проблема;у вас не будет обеих страниц на экране одновременно, и вам придется написать какой-нибудь причудливый код перехода, чтобы все это работало правильно.Я бы зашел так далеко, что представил пользовательские элементы управления с интерфейсами или DependencyProperties со встроенными функциями перехода и т. Д.

Тем не менее;У меня была эта проблема в прошлом, и, честно говоря, я просто отказался от элемента управления Frame и страниц и сделал все это вручную.В конце концов, он стал быстрее, легче в обслуживании, и я смог добиться любого эффекта, который хотел.

Так что, если вы хотите, чтобы мой честный ответ, просто не используйте Frame и делайте все вручную ... (Это касается только WPF. У UWP есть другие функции и больше причиниспользовать встроенную навигацию, чем WPF.)

...