Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create customized NavigationTransitionInfo for Page Navigation Transitions in UWP

I am working on a Universal Windows (UWP) app and I want to add some page NavigationTransitions to my pages . I know that I can use default NavigationThemeTransition like the code below :

<Page.Transitions>
    <TransitionCollection>
        <NavigationThemeTransition>
            <NavigationThemeTransition.DefaultNavigationTransitionInfo>
                <CommonNavigationTransitionInfo/>
            </NavigationThemeTransition.DefaultNavigationTransitionInfo>
        </NavigationThemeTransition>
    </TransitionCollection>
</Page.Transitions>

but I want to create my own Navigation Transition , I searched many times but no result . I also tried to get definitions of default navigations and I were able to write some code like below but don't know what I have to write in code blocks . Any help ?

  using Windows.UI.Xaml;
  using Windows.UI.Xaml.Media.Animation;
  using Windows.UI.Xaml.Controls.Primitives;

  namespace BindingSample2
  {
    internal interface IWikiSedaNavigationTransitionInfo
    {
        System.Boolean IsStaggeringEnabled { get; set; }
    }
    public sealed class WikiSedaNavigationTransitionInfo : NavigationTransitionInfo, IWikiSedaNavigationTransitionInfo
    {
        //
        // Summary:
        //     Initializes a new instance of the WikiSedaNavigationTransitionInfo class.
        public WikiSedaNavigationTransitionInfo()
        {
            var a = this.GetNavigationStateCore();
            var s = this.MemberwiseClone();
            // NavigationThemeTransition theme = new NavigationThemeTransition();

            var themeR = new EdgeUIThemeTransition();

            themeR.Edge = EdgeTransitionLocation.Bottom;

            //Transitions = collection;
        }

        // Summary:
        //     Identifies the CommonNavigationTransitionInfo.IsStaggerElement attached property.
        //
        // Returns:
        //     The identifier for the CommonNavigationTransitionInfo.IsStaggerElement attached
        //     property.
        public static DependencyProperty IsStaggerElementProperty { get; }

        // Summary:
        //     Identifies the IsStaggeringEnabled dependency property.
        //
        // Returns:
        //     The identifier for the IsStaggeringEnabled dependency property.
        public static DependencyProperty IsStaggeringEnabledProperty { get; }

        // Summary:
        //     Gets or sets a Boolean value indicating if staggering is enabled for the navigation
        //     transition.
        //
        // Returns:
        //     A Boolean value indicating if staggering is enabled for the navigation transition.
        public System.Boolean IsStaggeringEnabled { get; set; }

        // Summary:
        //     Returns a Boolean value indicating if the specified UIElement is the stagger
        //     element for the navigation transition.
        //
        // Parameters:
        //   element:
        //     The UIElement to check as being the stagger element.
        //
        // Returns:
        //     Returns true if element is the stagger element; otherwise false.
        public static System.Boolean GetIsStaggerElement(UIElement element)
        {
            return false;
        }

        // Summary:
        //     Sets a Boolean value indicating if the specified UIElement is the stagger element
        //     for the navigation transition.
        //
        // Parameters:
        //   element:
        //     The UIElement about which to set the stagger element indicator.
        //
        //   value:
        //     Set this value to true if element is the stagger element; otherwise set it to
        //     false.
        public static void SetIsStaggerElement(UIElement element, System.Boolean value)
        {

        }
    }
}
like image 312
Ali NGame Avatar asked Nov 09 '22 00:11

Ali NGame


1 Answers

Actually you can achieve that in W10 Creators Update. Take a look at this blog post I've just found on Twitter.

like image 179
Marian Dolinský Avatar answered Nov 14 '22 22:11

Marian Dolinský