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); }
//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; }