override protected void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
        {
            // If this is a back navigation, the page will be discarded, so there
            // is no need to save state.
            if (e.NavigationMode != System.Windows.Navigation.NavigationMode.Back)
            {
                InfoPageModel pageData = new InfoPageModel();
                pageData.ScrollViewerPosition = this.scrollViewer.VerticalOffset;
                State["InfoPageModel"]        = pageData;
            }

            base.OnNavigatingFrom(e);
        }
        override protected void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            if (State.ContainsKey("InfoPageModel"))
            {
                InfoPageModel pageData = (InfoPageModel)State["InfoPageModel"];

                // TODO: Bug, does not scroll to given position
                this.scrollViewer.UpdateLayout();
                this.scrollViewer.ScrollToVerticalOffset(pageData.ScrollViewerPosition);

                State.Remove("InfoPageModel");
            }

            base.OnNavigatedTo(e);
        }
Beispiel #3
0
        public static InfoPageModel GetInfoPage(InfoPageConfiguration conf)
        {
            InfoPageModel ip = new InfoPageModel();

            ip.MainAssembly     = GetAssemblyMetadata(conf.MainAssembly);
            ip.LoadedAssemblies = GetLoadedAssemblies();
            ip.Conf             = conf;
            if (conf.ShowInfo)
            {
                ip.Info = GetMarkdownContent(conf.InfoPath);
            }

            if (conf.ShowLicense)
            {
                ip.License = GetMarkdownContent(conf.LicensePath);
            }

            if (conf.ShowChangeLog)
            {
                ip.ChangeLogs = GetMarkdownContent(conf.ChangeLogPath);
            }

            return(ip);
        }