Example #1
0
        /// <summary>
        /// Invoked when the application is launched normally by the end user.  Other entry points
        /// will be used such as when the application is launched to open a specific file.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override async void OnLaunched(LaunchActivatedEventArgs e)
        {

#if DEBUG
            if (Debugger.IsAttached)
            {
                DebugSettings.EnableFrameRateCounter = true;
            }
#endif


            // Associate main region states with corresponding native pages
            LifecycleHelper.RegisterView<MainPage>().ForState(MainRegionView.Main);
            LifecycleHelper.RegisterView<SecondPage>().ForState(MainRegionView.Second);
            LifecycleHelper.RegisterView<ThirdPage>().ForState(MainRegionView.Third);
            LifecycleHelper.RegisterView<FourthPage>().ForState(MainRegionView.Fourth);

            // Register the sub-pages of the third page
            LifecycleHelper.RegisterView<ThrirdOnePage>().ForState(ThirdStates.One);
            LifecycleHelper.RegisterView<ThirdTwoPage>().ForState(ThirdStates.Two);
            LifecycleHelper.RegisterView<ThirdThreePage>().ForState(ThirdStates.Three);
            LifecycleHelper.RegisterView<ThirdFourPage>().ForState(ThirdStates.Four);

            // Register the page to be used in the additional window
            LifecycleHelper.RegisterView<SeparatePage>().ForState(SecondaryRegionView.Main);

            var core = new SampleApplication();
            var wm = new WindowManager(core);
            await core.Startup(builder =>
            {
                builder.Register<UWPSpecial,ISpecial>();
            });

        }
        /// <summary>
        /// Invoked when the application is launched normally by the end user.  Other entry points
        /// will be used such as when the application is launched to open a specific file.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override async void OnLaunched(LaunchActivatedEventArgs e)
        {

#if DEBUG
            if (Debugger.IsAttached)
            {
                DebugSettings.EnableFrameRateCounter = true;
            }
#endif

            var rootFrame = Window.Current.Content as Frame;

            // Do not repeat app initialization when the Window already has content,
            // just ensure that the window is active
            if (rootFrame == null)
            {
                // Create a Frame to act as the navigation context and navigate to the first page
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;

                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                }

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }

            if (rootFrame.Content == null)
            {

                NavigationHelper.Register<PageStates, MainPage>(PageStates.Main);
                NavigationHelper.Register<PageStates, SecondPage>(PageStates.Second);
                NavigationHelper.Register<PageStates, ThirdPage>(PageStates.Third);
                NavigationHelper.Register<SecondaryStates, SeparatePage>(SecondaryStates.Main);

                var core = new SampleApplication();
                await core.Startup(builder =>
                {
                    builder.RegisterType<Special>().As<ISpecial>();
                });
                var region = core.RegionManager.RegionByType<MainWindow>();
                var fn = new FrameNavigation<PageStates, PageTransitions>(rootFrame, region);
                await region.Startup(core.RegionManager);
                

                var wm = new WindowManager(core);

                

                // When the navigation stack isn't restored navigate to the first page,
                // configuring the new page by passing required information as a navigation
                // parameter
                //rootFrame.Navigate(typeof(MainPage), e.Arguments);
            }
            // Ensure the current window is active
            Window.Current.Activate();
        }
        protected override async void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            var core = new SampleApplication();
            var fn = new AcitivityNavigation<PageStates, PageTransitions>(this, core);
            fn.Register<MainActivity>(PageStates.Main);
            fn.Register<SecondActivity>(PageStates.Second);
            //fn.Register<ThirdActivity>(PageStates.Third);
            await core.Startup(builder =>
            {
                builder.RegisterType<Special>().As<ISpecial>();
            });

        }
        private async void StartApplication()
        {

            // Handle when your app starts
            LifecycleHelper.RegisterView<MainPage>().ForState(MainRegionView.Main);
            LifecycleHelper.RegisterView<SecondPage>().ForState(MainRegionView.Second);
            LifecycleHelper.RegisterView<ThirdPage>().ForState(MainRegionView.Third);

            LifecycleHelper.RegisterView<SeparatePage>().ForState(SecondaryRegionView.Main);


            var core = new SampleApplication();
            var wm = new WindowManager(MainPage as CustomNavigationPage, core);
            await core.Startup(
                builder =>
            {
                builder.Register<XFormsSpecial, ISpecial>();
            });

            //            (MainPage as NavigationPage).Navigation.PushAsync(new MainPage());
        }
        /// <summary>
        /// Invoked when the application is launched normally by the end user.  Other entry points
        /// will be used when the application is launched to open a specific file, to display
        /// search results, and so forth.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override async void OnLaunched(LaunchActivatedEventArgs e)
        {
#if DEBUG
            if (System.Diagnostics.Debugger.IsAttached)
            {
                this.DebugSettings.EnableFrameRateCounter = true;
            }
#endif

            Frame rootFrame = Window.Current.Content as Frame;

            // Do not repeat app initialization when the Window already has content,
            // just ensure that the window is active
            if (rootFrame == null)
            {
                // Create a Frame to act as the navigation context and navigate to the first page
                rootFrame = new Frame();

                // TODO: change this value to a cache size that is appropriate for your application
                rootFrame.CacheSize = 1;

                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    // TODO: Load state from previously suspended application
                }

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }

            if (rootFrame.Content == null)
            {

                var core = new SampleApplication();
                var fn = new FrameNavigation<PageStates, PageTransitions>(rootFrame, core);
                fn.Register<MainPage>(PageStates.Main);
                fn.Register<SecondPage>(PageStates.Second);
                fn.Register<ThirdPage>(PageStates.Third);
                await core.Startup();
                //#if WINDOWS_PHONE_APP
                //                // Removes the turnstile navigation for startup.
                //                if (rootFrame.ContentTransitions != null)
                //                {
                //                    this.transitions = new TransitionCollection();
                //                    foreach (var c in rootFrame.ContentTransitions)
                //                    {
                //                        this.transitions.Add(c);
                //                    }
                //                }

                //                rootFrame.ContentTransitions = null;
                //                rootFrame.Navigated += this.RootFrame_FirstNavigated;
                //#endif

                //                // When the navigation stack isn't restored navigate to the first page,
                //                // configuring the new page by passing required information as a navigation
                //                // parameter
                //                if (!rootFrame.Navigate(typeof(MainPage), e.Arguments))
                //                {
                //                    throw new Exception("Failed to create initial page");
                //                }
            }

            // Ensure the current window is active
            Window.Current.Activate();
        }