Example #1
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            //Connected Animation

            PopOutStoryboard.Begin();
            PopOutStoryboard.Completed += (sender1_, e1_) =>
            {
                PopInStoryboard.Begin();
            };

            if (NavigationRootPage.Current.PageHeader != null)
            {
                var connectedAnimation = ConnectedAnimationService.GetForCurrentView().GetAnimation("controlAnimation");

                if (connectedAnimation != null)
                {
                    var target = NavigationRootPage.Current.PageHeader.TitlePanel;
                    connectedAnimation.TryStart(target, new UIElement[] { subTitleText });
                }
            }

            var item = await ControlInfoDataSource.Instance.GetItemAsync((String)e.Parameter);

            if (item != null)
            {
                Item = item;

                // Load control page into frame.
                var loader = ResourceLoader.GetForCurrentView();

                string pageRoot = loader.GetString("PageStringRoot");

                string pageString = pageRoot + item.UniqueId + "Page";
                Type   pageType   = Type.GetType(pageString);

                if (pageType != null)
                {
                    this.contentFrame.Navigate(pageType);
                }

                NavigationRootPage.Current.NavigationView.Header = item?.Title;
                if (item.IsNew && NavigationRootPage.Current.CheckNewControlSelected())
                {
                    return;
                }

                ControlInfoDataGroup group = await ControlInfoDataSource.Instance.GetGroupFromItemAsync((String)e.Parameter);

                var menuItem = NavigationRootPage.Current.NavigationView.MenuItems.Cast <NavigationViewItem>().FirstOrDefault(m => m.Tag?.ToString() == group.UniqueId);
                if (menuItem != null)
                {
                    menuItem.IsSelected = true;
                }
            }

            base.OnNavigatedTo(e);
        }
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            var item = await ControlInfoDataSource.Instance.GetItemAsync((string)e.Parameter);

            if (item != null)
            {
                Item = item;

                // Load control page into frame.
                var loader = ResourceLoader.GetForCurrentView();

                string pageRoot = loader.GetString("PageStringRoot");

                string pageString = pageRoot + item.UniqueId + "Page";
                Type   pageType   = Type.GetType(pageString);

                if (pageType != null)
                {
                    // Pagetype is not null!
                    // So lets generate the github links and set them!
                    var gitHubBaseURI = "https://github.com/microsoft/Xaml-Controls-Gallery/tree/master/XamlControlsGallery/ControlPages/";
                    var pageName      = pageType.Name + ".xaml";
                    PageCodeGitHubLink.NavigateUri   = new Uri(gitHubBaseURI + pageName + ".cs");
                    PageMarkupGitHubLink.NavigateUri = new Uri(gitHubBaseURI + pageName);

                    this.contentFrame.Navigate(pageType);
                }

                NavigationRootPage.Current.NavigationView.Header = item?.Title;
                if (item.IsNew && NavigationRootPage.Current.CheckNewControlSelected())
                {
                    PlayConnectedAnimation();
                    return;
                }

                ControlInfoDataGroup group = await ControlInfoDataSource.Instance.GetGroupFromItemAsync((string)e.Parameter);

                var menuItem = NavigationRootPage.Current.NavigationView.MenuItems.Cast <Microsoft.UI.Xaml.Controls.NavigationViewItemBase>().FirstOrDefault(m => m.Tag?.ToString() == group.UniqueId);
                if (menuItem != null)
                {
                    menuItem.IsSelected = true;
                }

                PlayConnectedAnimation();
            }

            base.OnNavigatedTo(e);
        }
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            var item = await ControlInfoDataSource.Instance.GetItemAsync((String)e.Parameter);

            if (item != null)
            {
                Item = item;

                // Load control page into frame.
                var loader = ResourceLoader.GetForCurrentView();

                string pageRoot = loader.GetString("PageStringRoot");

                string pageString = pageRoot + item.UniqueId + "Page";
                Type   pageType   = Type.GetType(pageString);

                if (pageType != null)
                {
                    this.contentFrame.Navigate(pageType);
                }

                NavigationRootPage.Current.NavigationView.Header = item?.Title;
                if (item.IsNew && NavigationRootPage.Current.CheckNewControlSelected())
                {
                    PlayConnectedAnimation();
                    return;
                }

                ControlInfoDataGroup group = await ControlInfoDataSource.Instance.GetGroupFromItemAsync((String)e.Parameter);

                var menuItem = NavigationRootPage.Current.NavigationView.MenuItems.Cast <Microsoft.UI.Xaml.Controls.NavigationViewItemBase>().FirstOrDefault(m => m.Tag?.ToString() == group.UniqueId);
                if (menuItem != null)
                {
                    menuItem.IsSelected = true;
                }

                PlayConnectedAnimation();
            }

            base.OnNavigatedTo(e);
        }
        protected virtual List <PageInfo> ConvertDataContextToList(object context)
        {
            List <PageInfo> infoList = new List <PageInfo>();

            if (context.GetType() == typeof(ObservableCollection <ControlInfoDataGroup>))
            {
                var data = context as ObservableCollection <ControlInfoDataGroup>;
                for (int i = 0; i < data.Count; i++)
                {
                    ControlInfoDataGroup group = data.ElementAt(i);

                    infoList.Add(new PageInfo(group.Title, typeof(SectionPage), group.UniqueId, group.Items));
                }
            }
            else if (context.GetType() == typeof(ControlInfoDataGroup))
            {
                var data = context as ControlInfoDataGroup;
                for (int i = 0; i < data.Items.Count; i++)
                {
                    ControlInfoDataItem item = data.Items[i];

                    infoList.Add(new PageInfo(item.Title, typeof(ItemPage), item.UniqueId));
                }
            }
            else if (context.GetType() == typeof(ObservableCollection <ControlInfoDataItem>))
            {
                var data = context as ObservableCollection <ControlInfoDataItem>;
                for (int i = 0; i < data.Count; i++)
                {
                    ControlInfoDataItem item = data.ElementAt(i);

                    infoList.Add(new PageInfo(item.Title, typeof(ItemPage), item.UniqueId));
                }
            }

            return(infoList);
        }
Example #5
0
        //private async void controlsSearchBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
        //{
        //    var groups = await AppUIBasics.Data.ControlInfoDataSource.GetGroupsAsync();
        //    var suggestions = new List<ControlInfoDataItem>();

        //    foreach (var group in groups)
        //    {
        //        var matchingItems = group.Items.Where(
        //            item => item.Title.Contains(sender.Text));

        //        foreach (var item in matchingItems)
        //        {
        //            suggestions.Add(item);
        //        }
        //    }
        //    controlsSearchBox.ItemsSource = suggestions;
        //}

        //private void controlsSearchBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
        //{
        //    var itemId = (args.SelectedItem as ControlInfoDataItem).UniqueId;
        //    this.Frame.Navigate(typeof(ItemPage), itemId);

        //}

        /// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="sender">
        /// The source of the event; typically <see cref="NavigationHelper"/>
        /// </param>
        /// <param name="e">Event data that provides both the navigation parameter passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and
        /// a dictionary of state preserved by this page during an earlier
        /// session.  The state will be null the first time a page is visited.</param>
        private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
        {
            var group = await ControlInfoDataSource.GetGroupAsync((String)e.NavigationParameter);

            Group = group;
        }