Share via


NavigationThemeTransition 類別

定義

提供頁面導覽動畫。

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 .../>
繼承
Object Platform::Object IInspectable DependencyObject Transition NavigationThemeTransition
屬性

範例

提示

如需詳細資訊、設計指引和程式碼範例,請參閱 頁面轉換

WinUI 3 資源庫應用程式包含大部分 WinUI 3 控制件、特性和功能的互動式範例。 從 Microsoft Store 取得應用程式,或在 GitHub 上取得原始程式碼。

備註

使用 Windows 10 1803 版時,Frame 預設會使用 NavigationThemeTransition 以動畫顯示頁面之間的流覽。

當您的應用程式在 Frame 中的不同內容片段之間巡覽時,您可以使用 NavigationThemeTransition 來新增動畫轉換。 您可以將 NavigationThemeTransition 新增至要巡覽之 PageTransitions 集合,或導覽 FrameContentTransitions 集合。 一般而言,我們建議您使用框架的 ContentTransitions 屬性,以確保所有瀏覽頁面都會發生轉換。

此範例顯示 NavigationThemeTransition 已新增至 FrameContentTransitions 集合。

<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 應用程式中傳null回。 請改用 DispatcherQueue

(繼承來源 DependencyObject)
DispatcherQueue

DispatcherQueue取得與這個 物件相關聯的 。 DispatcherQueue表示即使程式代碼是由非UI線程起始,也可以存取 DependencyObject UI線程上的設備。

(繼承來源 DependencyObject)

方法

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)

適用於

另請參閱