NavigationThemeTransition Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет анимации навигации по страницам.
public ref class NavigationThemeTransition sealed : Transition
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
class NavigationThemeTransition final : Transition
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class NavigationThemeTransition final : Transition
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
public sealed class NavigationThemeTransition : Transition
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class NavigationThemeTransition : Transition
Public NotInheritable Class NavigationThemeTransition
Inherits Transition
<NavigationThemeTransition .../>
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Примеры
Совет
Дополнительные сведения, рекомендации по проектированию и примеры кода см. в разделе Переходы страниц.
Если у вас установлено приложение коллекции WinUI 2 , щелкните здесь, чтобы открыть приложение и просмотреть раздел Переходы страниц в действии.
Комментарии
В Windows 10 версии 1803 frame использует NavigationThemeTransition для анимации навигации между Страницами по умолчанию.
NavigationThemeTransition можно использовать для добавления анимированных переходов, когда приложение перемещается между различными фрагментами содержимого в frame. Вы можете добавить NavigationThemeTransition в коллекцию Переходы страницы, к которой выполняется переход, или в коллекцию ContentTransitions для кадра навигации. Как правило, рекомендуется использовать свойство ContentTransitions кадра, чтобы обеспечить переходы для всех страниц навигации.
В этом примере показан элемент NavigationThemeTransition, добавленный в коллекцию ContentTransitionsобъекта Frame.
<Frame ...>
<Frame.ContentTransitions>
<TransitionCollection>
<NavigationThemeTransition/>
</TransitionCollection>
</Frame.ContentTransitions>
...
</Frame>
var frame = new Frame();
frame.ContentTransitions = new TransitionCollection();
frame.ContentTransitions.Add(new NavigationThemeTransition());
В Windows 10 для навигации между страницами в приложении предоставляются две различные анимации. Анимации навигации представлены подклассами NavigationTransitionInfo.
- Обновление страницы. Обновление страницы — это анимация по умолчанию для навигации по страницам. Это сочетание анимации слайда вверх и исчезания анимации для входящего содержимого. Обновление страниц следует использовать при использовании навигации верхнего уровня, например меню навигации.
Анимация обновления страницы представлена классом EntranceNavigationTransitionInfo . Присоединенное свойство EntranceNavigationTransitionInfo.IsTargetElement можно использовать для применения движения обновления страницы к подмножествам страницы; например, все содержимое, за исключением пользовательского интерфейса команд страницы.
- Детализация. Вы должны использовать анимацию детализации, когда пользователь взаимодействует с пользовательским интерфейсом на странице, представляющей ссылку на другую страницу. Например, на странице, представляющей список альбомов, когда пользователь щелкает элемент альбома, должен выполняться переход на страницу альбома.
Детализация анимации представлена классом DrillInNavigationTransitionInfo .
По умолчанию NavigationThemeTransition воспроизводит анимацию обновления страницы. Однако это поведение можно переопределить, задав свойство DefaultNavigationTransitionInfo элемента NavigationThemeTransition. Значение NavigationTransitionInfo этого свойства по умолчанию используется для всей навигации.
Можно указать анимацию, используемую для определенной навигации, с помощью перегрузки Frame.Navigate , которая принимает 3 параметра.
В этом примере, когда пользователь выполняет детализацию из списка альбомов на страницу, представляющую определенный альбом, приложение для просмотра музыки запрашивает детализацию анимации.
void AlbumsListView_ItemClick(object sender, ItemClickEventArgs e)
{
// Get albumId from clicked item...
Frame.Navigate(typeof(AlbumPage), albumId, new DrillInNavigationTransitionInfo());
}
Кроме того, вы можете использовать Frame.GoBack(NavigationTransitionInfo) для воспроизведения определенного перехода при переходе назад в стеке назад Frame back. Это может быть полезно при динамическом изменении поведения навигации в зависимости от размера экрана, например при использовании адаптивного шаблона основных и подробных данных. Дополнительные примеры см. в примере xaml master/detail.
SuppressNavigationTransitionInfo
Вы можете использовать SuppressNavigationTransitionInfo вместо других подтипов NavigationTransitionInfo , чтобы избежать воспроизведения анимации во время навигации.
// Navigate to your first page without a transition
Frame.Navigate(typeof(MainPage), null, new SuppressNavigationTransitionInfo());
Конструкторы
NavigationThemeTransition() |
Инициализирует новый экземпляр класса NavigationThemeTransition . |
Свойства
DefaultNavigationTransitionInfo |
Возвращает или задает переход по умолчанию, используемый при переходе между страницами. |
DefaultNavigationTransitionInfoProperty |
Определяет свойство зависимости DefaultNavigationTransitionInfo . |
Dispatcher |
Возвращает CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу. (Унаследовано от DependencyObject) |
Методы
ClearValue(DependencyProperty) |
Очищает локальное значение свойства зависимостей. (Унаследовано от DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна. (Унаследовано от DependencyObject) |
GetValue(DependencyProperty) |
Возвращает текущее действующее значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомления для прослушивания изменений определенной DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей для Объекта DependencyObject. (Унаследовано от DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова метода RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |