Windows Phone 8.1 Билингвальная анимация слайдов
Я хотел бы добавить переход страницы в мое приложение Windows Phone 8.1 таким образом, чтобы следующая страница будет скользить в нижней части экрана. Подобный эффект используется при запуске Bing, нажав кнопку "Поиск".
К сожалению, MSDN не очень описателен в этой теме. Кто-нибудь знает, как реализовать такую анимацию?
Ответы
Ответ 1
Сначала вам нужно отключить текущие переходы для Frame
- лучшее место будет в App.xaml.cs
, где создаётся rootframe
, но зависит от того, как инициализируется ваше приложение. Вот, например, в конструкторе MainPage:
public MainPage()
{
this.InitializeComponent();
Frame mainFrame = Window.Current.Content as Frame;
mainFrame.ContentTransitions = null;
}
После того, как вы отключили переходы по умолчанию, в каждом Page
вы можете определить свой собственный переход:
В Page.xaml
:
<Page.Transitions>
<TransitionCollection>
<PaneThemeTransition Edge="Bottom"/>
</TransitionCollection>
</Page.Transitions>
Я не уверен, что это точная анимация, которую вы искали. Подробнее об анимациях вы найдете здесь, в MSDN.
Конечно, вы также можете определить Frame
new ContentTransitions
, чтобы они были по умолчанию для всех Pages
- например:
// instead of null put in MainPage constructor:
mainFrame.ContentTransitions = new TransitionCollection { new PaneThemeTransition { Edge = EdgeTransitionLocation.Bottom } };
Ответ 2
Переходы по умолчанию могут быть переопределены на основе навигации по коду.
NavigationTransitionInfo transitionInfo = new SlideNavigationTransitionInfo();
Frame.Navigate(typeof(SecondPage), false, transitionInfo);
Приведенный выше код заставит SecondPage
скользить снизу вверх так, как вы хотите. Однако это относится только к этому конкретному сценарию навигации. Если вы хотите, чтобы SecondPage
скользил во время навигации из любого места, установите NavigationTransitionInfo
в XAML.
<Page.Transitions>
<TransitionCollection>
<NavigationThemeTransition>
<NavigationThemeTransition.DefaultNavigationTransitionInfo>
<SlideNavigationTransitionInfo/>
</NavigationThemeTransition.DefaultNavigationTransitionInfo>
</NavigationThemeTransition>
</TransitionCollection>
</Page.Transitions>
Это заставит страницу скользить во время навигации. Это значение по-умолчанию может быть переопределено с помощью кода для определенных сценариев навигации.
Ответ 3
В Инструментарий Windows Phone Toolkit вы можете найти анимации и образцы
Вот несколько article