public void VerifyMenuItemAndContainerMappingMenuItems() { RunOnUIThread.Execute(() => { var navView = new NavigationView(); MUXControlsTestApp.App.TestContentRoot = navView; var menuItem1 = new NavigationViewItem(); var menuItem2 = new NavigationViewItem(); menuItem1.Content = "Item 1"; menuItem2.Content = "Item 2"; navView.MenuItems.Add(menuItem1); navView.MenuItems.Add(menuItem2); navView.Width = 1008; // forces the control into Expanded mode so that the menu renders MUXControlsTestApp.App.TestContentRoot.UpdateLayout(true); // Get container for item var itemContainer = navView.ContainerFromMenuItem(menuItem2) as NavigationViewItem; bool correctContainerReturned = itemContainer != null && itemContainer == menuItem2; Verify.IsTrue(correctContainerReturned, "Correct container should be returned for passed in menu item."); // Get item for container var returnedItem = navView.MenuItemFromContainer(menuItem2) as NavigationViewItem; bool correctItemReturned = returnedItem != null && returnedItem == menuItem2; Verify.IsTrue(correctItemReturned, "Correct item should be returned for passed in container."); // Try to get an item that is not in the NavigationView NavigationViewItem menuItem3 = new NavigationViewItem(); menuItem3.Content = "Item 3"; var returnedItemForNonExistentContainer = navView.MenuItemFromContainer(menuItem3); Verify.IsTrue(returnedItemForNonExistentContainer == null, "Returned item should be null."); MUXControlsTestApp.App.TestContentRoot = null; }); }
public void VerifySingleSelection() { RunOnUIThread.Execute(() => { var navView = new NavigationView(); Content = navView; var menuItem1 = new NavigationViewItem(); var menuItem2 = new NavigationViewItem(); menuItem1.Content = "Item 1"; menuItem2.Content = "Item 2"; navView.MenuItems.Add(menuItem1); navView.MenuItems.Add(menuItem2); navView.Width = 1008; // forces the control into Expanded mode so that the menu renders Content.UpdateLayout(true); Verify.IsFalse(menuItem1.IsSelected); Verify.IsFalse(menuItem2.IsSelected); Verify.AreEqual(navView.SelectedItem, null); menuItem1.IsSelected = true; Content.UpdateLayout(true); Verify.IsTrue(menuItem1.IsSelected); Verify.IsFalse(menuItem2.IsSelected); Verify.AreEqual(navView.SelectedItem, menuItem1); menuItem2.IsSelected = true; Content.UpdateLayout(true); Verify.IsTrue(menuItem2.IsSelected); Verify.IsFalse(menuItem1.IsSelected, "MenuItem1 should have been deselected when MenuItem2 was selected"); Verify.AreEqual(navView.SelectedItem, menuItem2); }); }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this.NavView = ((ModernWpf.Controls.NavigationView)(target)); #line 36 "..\..\MainWindow.xaml" this.NavView.ItemInvoked += new ModernWpf.TypedEventHandler <ModernWpf.Controls.NavigationView, ModernWpf.Controls.NavigationViewItemInvokedEventArgs>(this.NavView_ItemInvoked); #line default #line hidden return; case 2: this.HomeBox = ((ModernWpf.Controls.NavigationViewItem)(target)); return; case 3: this.ChatBox = ((ModernWpf.Controls.NavigationViewItem)(target)); return; case 4: this.Home = ((System.Windows.Controls.Grid)(target)); return; case 5: this.messageTxt = ((System.Windows.Controls.TextBlock)(target)); return; case 6: this.connectbutton = ((System.Windows.Controls.Button)(target)); #line 81 "..\..\MainWindow.xaml" this.connectbutton.Click += new System.Windows.RoutedEventHandler(this.connectbutton_Click); #line default #line hidden return; case 7: this.startButton = ((System.Windows.Controls.Button)(target)); #line 98 "..\..\MainWindow.xaml" this.startButton.Click += new System.Windows.RoutedEventHandler(this.Button_Click_2); #line default #line hidden return; case 8: this.ipTextBlock = ((System.Windows.Controls.TextBlock)(target)); return; case 9: this.ipTextBox = ((System.Windows.Controls.TextBox)(target)); #line 125 "..\..\MainWindow.xaml" this.ipTextBox.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.TextBox_TextChanged); #line default #line hidden return; case 10: #line 135 "..\..\MainWindow.xaml" ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click_1); #line default #line hidden return; case 11: this.messagetextBox = ((System.Windows.Controls.TextBox)(target)); #line 151 "..\..\MainWindow.xaml" this.messagetextBox.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.TextBox_TextChanged); #line default #line hidden return; case 12: #line 161 "..\..\MainWindow.xaml" ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.sendButton_Click); #line default #line hidden return; case 13: this.messagetextBlock = ((System.Windows.Controls.TextBlock)(target)); return; } this._contentLoaded = true; }
public void VerifyExpandCollapseChevronVisibility() { NavigationView navView = null; NavigationViewItem parentItem = null; ObservableCollection <string> children = null; RunOnUIThread.Execute(() => { navView = new NavigationView(); Content = navView; children = new ObservableCollection <string>(); parentItem = new NavigationViewItem() { Content = "ParentItem", MenuItemsSource = children }; navView.MenuItems.Add(parentItem); navView.Width = 1008; // forces the control into Expanded mode so that the menu renders Content.UpdateLayout(true); UIElement chevronUIElement = (UIElement)VisualTreeUtils.FindVisualChildByName(parentItem, "ExpandCollapseChevron"); Verify.IsTrue(chevronUIElement.Visibility == Visibility.Collapsed, "chevron should have been collapsed as NavViewItem has no children"); // Add a child to parentItem through the MenuItemsSource API. This should make the chevron visible. children.Add("Child 1"); Content.UpdateLayout(true); Verify.IsTrue(chevronUIElement.Visibility == Visibility.Visible, "chevron should have been visible as NavViewItem now has children"); // Remove all children of parentItem. This should collapse the chevron children.Clear(); Content.UpdateLayout(true); Verify.IsTrue(chevronUIElement.Visibility == Visibility.Collapsed, "chevron should have been collapsed as NavViewItem no longer has children"); // Add a child to parentItem and set the MenuItemsSource as null. This should collapse the chevron children.Add("Child 2"); Content.UpdateLayout(true); // we are doing this so that when we set MenuItemsSource as null, we can check if the chevron's visibility really changes Verify.IsTrue(chevronUIElement.Visibility == Visibility.Visible, "chevron should have been visible as NavViewItem now has children"); parentItem.MenuItemsSource = null; Content.UpdateLayout(true); Verify.IsTrue(chevronUIElement.Visibility == Visibility.Collapsed, "chevron should have been collapsed as NavViewItem no longer has children"); // Add a child to parentItem through the MenuItems API. This should make the chevron visible. parentItem.MenuItems.Add(new NavigationViewItem() { Content = "Child 3" }); Content.UpdateLayout(true); Verify.IsTrue(chevronUIElement.Visibility == Visibility.Visible, "chevron should have been visible as NavViewItem now has children"); // Remove all children of parentItem. This should collapse the chevron parentItem.MenuItems.Clear(); Content.UpdateLayout(true); Verify.IsTrue(chevronUIElement.Visibility == Visibility.Collapsed, "chevron should have been collapsed as NavViewItem no longer has children"); }); }
public void VerifySingleSelection() { string navItemPresenter1CurrentState = string.Empty; string navItemPresenter2CurrentState = string.Empty; NavigationView navView = null; NavigationViewItem menuItem1 = null; NavigationViewItem menuItem2 = null; RunOnUIThread.Execute(() => { navView = new NavigationView(); Content = navView; menuItem1 = new NavigationViewItem(); menuItem2 = new NavigationViewItem(); menuItem1.Content = "Item 1"; menuItem2.Content = "Item 2"; navView.MenuItems.Add(menuItem1); navView.MenuItems.Add(menuItem2); navView.Width = 1008; // forces the control into Expanded mode so that the menu renders Content.UpdateLayout(true); var menuItemLayoutRoot = VisualTreeHelper.GetChild(menuItem1, 0) as FrameworkElement; var navItemPresenter = VisualTreeHelper.GetChild(menuItemLayoutRoot, 0) as FrameworkElement; var navItemPresenterLayoutRoot = VisualTreeHelper.GetChild(navItemPresenter, 0) as FrameworkElement; var statesGroups = VisualStateManager.GetVisualStateGroups(navItemPresenterLayoutRoot); foreach (VisualStateGroup visualStateGroup in statesGroups) { Log.Comment($"VisualStateGroup1: Name={visualStateGroup.Name}, CurrentState={visualStateGroup.CurrentState.Name}"); visualStateGroup.CurrentStateChanged += (object sender, VisualStateChangedEventArgs e) => { Log.Comment($"VisualStateChangedEventArgs1: Name={e.Control.Name}, OldState={e.OldState.Name}, NewState={e.NewState.Name}"); navItemPresenter1CurrentState = e.NewState.Name; }; } menuItemLayoutRoot = VisualTreeHelper.GetChild(menuItem2, 0) as FrameworkElement; navItemPresenter = VisualTreeHelper.GetChild(menuItemLayoutRoot, 0) as FrameworkElement; navItemPresenterLayoutRoot = VisualTreeHelper.GetChild(navItemPresenter, 0) as FrameworkElement; statesGroups = VisualStateManager.GetVisualStateGroups(navItemPresenterLayoutRoot); foreach (VisualStateGroup visualStateGroup in statesGroups) { Log.Comment($"VisualStateGroup2: Name={visualStateGroup.Name}, CurrentState={visualStateGroup.CurrentState.Name}"); visualStateGroup.CurrentStateChanged += (object sender, VisualStateChangedEventArgs e) => { Log.Comment($"VisualStateChangedEventArgs2: Name={e.Control.Name}, OldState={e.OldState.Name}, NewState={e.NewState.Name}"); navItemPresenter2CurrentState = e.NewState.Name; }; } Verify.IsFalse(menuItem1.IsSelected); Verify.IsFalse(menuItem2.IsSelected); Verify.AreEqual(null, navView.SelectedItem); menuItem1.IsSelected = true; Content.UpdateLayout(); }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { Verify.AreEqual("Selected", navItemPresenter1CurrentState); Verify.AreEqual(string.Empty, navItemPresenter2CurrentState); Verify.IsTrue(menuItem1.IsSelected); Verify.IsFalse(menuItem2.IsSelected); Verify.AreEqual(menuItem1, navView.SelectedItem); menuItem2.IsSelected = true; Content.UpdateLayout(); }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { Verify.AreEqual("Normal", navItemPresenter1CurrentState); Verify.AreEqual("Selected", navItemPresenter2CurrentState); Verify.IsTrue(menuItem2.IsSelected); Verify.IsFalse(menuItem1.IsSelected, "MenuItem1 should have been deselected when MenuItem2 was selected"); Verify.AreEqual(menuItem2, navView.SelectedItem); }); }