NavigationThemeTransition 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供頁面導覽動畫。
public ref class NavigationThemeTransition sealed : Transition
/// [Microsoft.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class NavigationThemeTransition final : Transition
[Microsoft.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class NavigationThemeTransition : Transition
Public NotInheritable Class NavigationThemeTransition
Inherits Transition
<NavigationThemeTransition .../>
- 繼承
- 屬性
範例
提示
如需詳細資訊、設計指引和程式碼範例,請參閱 頁面轉換。
WinUI 3 資源庫應用程式包含大部分 WinUI 3 控制件、特性和功能的互動式範例。 從 Microsoft Store 取得應用程式,或在 GitHub 上取得原始程式碼。
備註
使用 Windows 10 1803 版時,Frame 預設會使用 NavigationThemeTransition 以動畫顯示頁面之間的流覽。
當您的應用程式在 Frame 中的不同內容片段之間巡覽時,您可以使用 NavigationThemeTransition 來新增動畫轉換。 您可以將 NavigationThemeTransition 新增至要巡覽之 Page 的 Transitions 集合,或導覽 Frame 的 ContentTransitions 集合。 一般而言,我們建議您使用框架的 ContentTransitions 屬性,以確保所有瀏覽頁面都會發生轉換。
此範例顯示 NavigationThemeTransition 已新增至 Frame 的 ContentTransitions 集合。
<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 附加屬性,將頁面重新整理動作套用至頁面的子集;例如,排除頁面命令 UI 的所有內容。
- 鑽研:當使用者與代表另一個頁面連結的UI互動時,您應該使用動畫中的鑽研。 例如,在代表相簿清單的頁面中,當使用者按兩下相簿專案時,應該會有轉換到相簿頁面的鑽研。
動畫中的鑽研是由 DrillInNavigationTransitionInfo 類別表示。
根據預設,NavigationThemeTransition 會播放頁面重新整理動畫。 不過,您可以藉由設定 NavigationThemeTransition 的 DefaultNavigationTransitionInfo 屬性來覆寫此行為。 此屬性的 NavigationTransitionInfo 值預設會用於所有導覽。
您可以使用採用 3 個參數的 Frame.Navigate 多載,指定要用於特定瀏覽的動畫。
在此範例中,當使用者從相簿清單「鑽研」到代表特定相簿的頁面時,音樂瀏覽應用程式會要求動畫中的鑽研。
void AlbumsListView_ItemClick(object sender, ItemClickEventArgs e)
{
// Get albumId from clicked item...
Frame.Navigate(typeof(AlbumPage), albumId, new DrillInNavigationTransitionInfo());
}
此外,您可以使用 Frame.GoBack (NavigationTransitionInfo) 在 返回框架 堆疊中瀏覽時播放特定的轉換。 當您根據螢幕大小動態修改瀏覽行為,例如在回應式主要/詳細案例中,這個做法是非常實用的。 如需更多範例,請參閱 XAML 主要/詳細數據範例。
SuppressNavigationTransitionInfo
當您想要避免在瀏覽期間播放任何動畫時,可以使用 SuppressNavigationTransitionInfo 取代其他 NavigationTransitionInfo 子類型。
// Navigate to your first page without a transition
Frame.Navigate(typeof(MainPage), null, new SuppressNavigationTransitionInfo());
建構函式
NavigationThemeTransition() |
初始化 NavigationThemeTransition 類別的新實例。 |
屬性
DefaultNavigationTransitionInfo |
取得或設定在頁面之間巡覽時所使用的預設轉換。 |
DefaultNavigationTransitionInfoProperty |
識別 DefaultNavigationTransitionInfo 相依性屬性。 |
Dispatcher |
一律會在 Windows 應用程式 SDK 應用程式中傳 |
DispatcherQueue |
|
方法
ClearValue(DependencyProperty) |
清除相依性屬性的本機值。 (繼承來源 DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
傳回為相依性屬性建立的任何基底值,如果動畫未使用中,則適用此屬性。 (繼承來源 DependencyObject) |
GetValue(DependencyProperty) |
從 DependencyObject 傳回相依性屬性的目前有效值。 (繼承來源 DependencyObject) |
ReadLocalValue(DependencyProperty) |
如果已設定本機值,則傳回相依性屬性的本機值。 (繼承來源 DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
註冊通知函式,以接聽此 DependencyObject 實例上特定 DependencyProperty 的變更。 (繼承來源 DependencyObject) |
SetValue(DependencyProperty, Object) |
設定 DependencyObject 上相依性屬性的本機值。 (繼承來源 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
取消先前透過呼叫 RegisterPropertyChangedCallback 註冊的變更通知。 (繼承來源 DependencyObject) |