public void VerifyDefaultBreadcrumb() { BreadcrumbBar breadcrumb = null; RunOnUIThread.Execute(() => { breadcrumb = new BreadcrumbBar(); var stackPanel = new StackPanel(); stackPanel.Children.Add(breadcrumb); Content = stackPanel; Content.UpdateLayout(); }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { ItemsRepeater breadcrumbItemsRepeater = (ItemsRepeater)breadcrumb.FindVisualChildByName("PART_ItemsRepeater"); Verify.IsNotNull(breadcrumbItemsRepeater, "The underlying items repeater could not be retrieved"); var breadcrumbNode1 = breadcrumbItemsRepeater.TryGetElement(1); Verify.IsNull(breadcrumbNode1, "There should be no items."); }); }
/// <summary> /// Gets a list of FolderItems that are the subfolders of the specified BreadcrumbItem. /// </summary> private static List <FolderItem> GetFolderItemsFromBreadcrumb(BreadcrumbItem item) { BreadcrumbBar bar = item.BreadcrumbBar; string path = bar.PathFromBreadcrumbItem(item); string trace = item.TraceValue; string[] subFolders; if (trace.Equals("Computer")) { subFolders = GetDrives(bar.SeparatorString).ToArray(); } else { try { subFolders = (from dir in System.IO.Directory.GetDirectories(path + "\\") select System.IO.Path.GetFileName(dir)).ToArray(); } catch { //maybe we don't have access! subFolders = new string[] { }; } } List <FolderItem> folderItems = (from folder in subFolders orderby folder select new FolderItem { Folder = folder }).ToList(); return(folderItems); }
/// <summary> /// Populate the Items of the specified BreadcrumbItem with the sub folders if necassary. /// </summary> /// <param name="item"></param> private static void PopulateFolders(BreadcrumbItem item) { BreadcrumbBar bar = item.BreadcrumbBar; string path = bar.PathFromBreadcrumbItem(item); string trace = item.TraceValue; if (trace.Equals("Computer")) { string[] dirs = System.IO.Directory.GetLogicalDrives(); foreach (string s in dirs) { //string dir = s; //if (s.EndsWith(bar.SeparatorString)) dir = s.Remove(s.Length - bar.SeparatorString.Length, bar.SeparatorString.Length); //FolderItem fi = new FolderItem(); //fi.Folder = dir; //item.Items.Add(fi); } } else { try { if (item.Data is SessionItemViewModel) { foreach (var row in (item.Data as SessionItemViewModel).Children) { item.Items.Add(row as SessionItemViewModel); } } } catch { } } }
protected override void OnMouseUp(MouseButtonEventArgs e) { FrameEx.AllowNavigateOnChangeSet = true; // set true to give message regarding changeset when click on button BreadcrumbBar bar = LayoutHelper.FindParentObject <BreadcrumbBar>(this); if (bar != null && bar.TargetFrame != null) { IRibbonPage page = bar.TargetFrame.Content as IRibbonPage; if (page != null && page.CanSave() && FrameEx.AllowNavigateOnChangeSet) { if (CommonMethods.ShowMessageOnNavigated(page)) { e.Handled = true; return; } FrameEx.AllowNavigateOnChangeSet = false; } } e.Handled = true; if (isPressed) { RoutedEventArgs args = new RoutedEventArgs(BreadcrumbButton.ClickEvent); RaiseEvent(args); selectCommand.Execute(null, this); } IsPressed = isPressed = false; base.OnMouseUp(e); }
public void ApplyBinding() { object dataContext = base.DataContext; if (dataContext != null) { DataTemplate dataTemplate = this.HeaderTemplate; DataTemplateSelector headerTemplateSelector = this.HeaderTemplateSelector; if (headerTemplateSelector != null) { dataTemplate = headerTemplateSelector.SelectTemplate(dataContext, this); } if (dataTemplate == null) { DataTemplateKey resourceKey = BreadcrumbItem.GetResourceKey(dataContext); if (resourceKey != null) { dataTemplate = (base.TryFindResource(resourceKey) as DataTemplate); } } this.SelectedItem = null; HierarchicalDataTemplate hierarchicalDataTemplate = dataTemplate as HierarchicalDataTemplate; if (dataTemplate != null) { this.Header = dataTemplate.LoadContent(); } else { this.Header = dataContext; } this.DataContext = dataContext; if (hierarchicalDataTemplate != null) { this.SetBinding(ItemsControl.ItemsSourceProperty, hierarchicalDataTemplate.ItemsSource); } BreadcrumbBar breadcrumbBar = this.BreadcrumbBar; if (breadcrumbBar != null) { if (this.TraceBinding == null) { this.TraceBinding = breadcrumbBar.TraceBinding; } if (this.ImageBinding == null) { this.ImageBinding = breadcrumbBar.ImageBinding; } } if (this.TraceBinding != null) { this.SetBinding(BreadcrumbItem.TraceProperty, this.TraceBinding); } if (this.ImageBinding != null) { this.SetBinding(BreadcrumbItem.ImageProperty, this.ImageBinding); } this.ApplyProperties(dataContext); } }
public ExplorerBarView() { this.InitializeComponent(); this.Find <Button>("btnBreadAnimate").Click += RefreshClick; _breadcrumbBar = this.Find <BreadcrumbBar>("breadcrumb"); _breadcrumbBar.PopulateItems += BreadcrumbBar_PopulateItems; }
public void VerifyObjectItemsSource() { BreadcrumbBar breadcrumb = null; RunOnUIThread.Execute(() => { // Set a custom ItemTemplate to be wrapped in a BreadcrumbBarItem. var itemTemplate = (DataTemplate)XamlReader.Load( @"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' xmlns:controls='using:Microsoft.UI.Xaml.Controls' xmlns:local='using:Windows.UI.Xaml.Tests.MUXControls.ApiTests'> <controls:BreadcrumbBarItem Content='{Binding}'> <controls:BreadcrumbBarItem.ContentTemplate> <DataTemplate> <TextBlock Text='{Binding MockProperty}'/> </DataTemplate> </controls:BreadcrumbBarItem.ContentTemplate> </controls:BreadcrumbBarItem> </DataTemplate>"); breadcrumb = new BreadcrumbBar(); breadcrumb.ItemsSource = new List <MockClass>() { new MockClass { MockProperty = "Node 1" }, new MockClass { MockProperty = "Node 2" }, }; breadcrumb.ItemTemplate = itemTemplate; var stackPanel = new StackPanel(); stackPanel.Children.Add(breadcrumb); Content = stackPanel; Content.UpdateLayout(); }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { ItemsRepeater breadcrumbItemsRepeater = (ItemsRepeater)breadcrumb.FindVisualChildByName("PART_ItemsRepeater"); Verify.IsNotNull(breadcrumbItemsRepeater, "The underlying items repeater could not be retrieved"); var breadcrumbNode1 = breadcrumbItemsRepeater.TryGetElement(1) as BreadcrumbBarItem; Verify.IsNotNull(breadcrumbNode1, "Our custom ItemTemplate should have been wrapped in a BreadcrumbBarItem."); }); }
public void VerifyNumericItemsSource() { BreadcrumbBar breadcrumb = null; BreadcrumbBar breadcrumb2 = null; RunOnUIThread.Execute(() => { // Set a custom ItemTemplate to be wrapped in a BreadcrumbBarItem. var itemTemplate = (DataTemplate)XamlReader.Load( @"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'> <TextBlock Text='{Binding}'/> </DataTemplate>"); breadcrumb = new BreadcrumbBar(); breadcrumb.ItemsSource = new List <int>() { 1, 2 }; breadcrumb.ItemTemplate = itemTemplate; breadcrumb2 = new BreadcrumbBar(); breadcrumb2.ItemsSource = new List <float>() { 1.4f, 4.5f }; breadcrumb2.ItemTemplate = itemTemplate; var stackPanel = new StackPanel(); stackPanel.Children.Add(breadcrumb); stackPanel.Children.Add(breadcrumb2); Content = stackPanel; Content.UpdateLayout(); }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { ItemsRepeater breadcrumbItemsRepeater = (ItemsRepeater)breadcrumb.FindVisualChildByName("PART_ItemsRepeater"); Verify.IsNotNull(breadcrumbItemsRepeater, "The underlying items repeater could not be retrieved"); ItemsRepeater breadcrumbItemsRepeater2 = (ItemsRepeater)breadcrumb2.FindVisualChildByName("PART_ItemsRepeater"); Verify.IsNotNull(breadcrumbItemsRepeater2, "The underlying items repeater could not be retrieved"); var breadcrumbNode1 = breadcrumbItemsRepeater.TryGetElement(1) as BreadcrumbBarItem; var breadcrumbNode2 = breadcrumbItemsRepeater2.TryGetElement(1) as BreadcrumbBarItem; Verify.IsNotNull(breadcrumbNode1, "Our custom ItemTemplate should have been wrapped in a BreadcrumbBarItem."); Verify.IsNotNull(breadcrumbNode2, "Our custom ItemTemplate should have been wrapped in a BreadcrumbBarItem."); }); }
public void VerifyBreadcrumbDefaultAPIValues() { RunOnUIThread.Execute(() => { BreadcrumbBar breadcrumb = new BreadcrumbBar(); var stackPanel = new StackPanel(); stackPanel.Children.Add(breadcrumb); Content = stackPanel; Content.UpdateLayout(); Verify.IsNull(breadcrumb.ItemsSource, "The default ItemsSource property value must be null"); Verify.IsNull(breadcrumb.ItemTemplate, "The default ItemTemplate property value must be null"); }); }
public Control_Files(TreeView _tree, BreadcrumbBar _bar) { m_tree = _tree; m_breadcrumbar = _bar; m_control.PopulateTreeView( m_tree, m_control.GetRelativePaths( Directory.GetFiles( Directory.GetCurrentDirectory() + "\\Assets"), Directory.GetCurrentDirectory()) , '\\'); m_breadcrumbar.ItemsSource = Directory.GetFiles( Directory.GetCurrentDirectory() + "\\Assets"); }
/// <summary> /// Focus this BreadcrumbButton if the focus is currently within the BreadcrumbBar where this BreadcrumbButton is embedded: /// </summary> protected override void OnMouseEnter(MouseEventArgs e) { isPressed = e.LeftButton == MouseButtonState.Pressed; FrameworkElement parent = TemplatedParent as FrameworkElement; while (parent != null && !(parent is BreadcrumbBar)) { parent = VisualTreeHelper.GetParent(parent) as FrameworkElement; } BreadcrumbBar bar = parent as BreadcrumbBar; if (bar != null && bar.IsKeyboardFocusWithin) { Focus(); } IsPressed = isPressed; base.OnMouseEnter(e); }
void item_Click(object sender, RoutedEventArgs e) { MenuItem item = e.Source as MenuItem; object dataItem = item.DataContext; //RemoveSelectedItem(dataItem); //SelectedItem = dataItem; FrameworkElement parent = TemplatedParent as FrameworkElement; while (parent != null && !(parent is BreadcrumbBar)) { parent = VisualTreeHelper.GetParent(parent) as FrameworkElement; } BreadcrumbBar bar = parent as BreadcrumbBar; if (bar != null) { bar.Path = (dataItem as ShellItem).ParsingName; } }
private static string GetPathFromBreadcrumbBar(BreadcrumbBar selectedBar, string sourcePath) { var list = new List <string>(); var selectedItem = selectedBar.SelectedBreadcrumb; while (selectedItem != null) { var p = selectedItem.TraceValue; list.Add(p); selectedItem = selectedItem.ParentBreadcrumbItem; } if (list.Count == 0) { return(sourcePath); } list.RemoveAt(list.Count - 1); list.Add(sourcePath); list.Reverse(); return(Path.Combine(list.ToArray())); }
/// <summary> /// Populate the Items of the specified BreadcrumbItem with the sub folders if necassary. /// </summary> /// <param name="item"></param> private static void PopulateFolders(BreadcrumbItem item) { BreadcrumbBar bar = item.BreadcrumbBar; string path = bar.PathFromBreadcrumbItem(item); string trace = item.TraceValue; if (trace.Equals("Computer")) { string[] dirs = System.IO.Directory.GetLogicalDrives(); foreach (string s in dirs) { string dir = s; if (s.EndsWith(bar.SeparatorString)) { dir = s.Remove(s.Length - bar.SeparatorString.Length, bar.SeparatorString.Length); } FolderItem fi = new FolderItem(); fi.Folder = dir; item.Items.Add(fi); } } else { try { string[] paths = System.IO.Directory.GetDirectories(path + "\\"); foreach (string s in paths) { string file = System.IO.Path.GetFileName(s); FolderItem fi = new FolderItem(); fi.Folder = file; item.Items.Add(fi); } } catch { } } }
void item_Click(object sender, RoutedEventArgs e) { BreadcrumbBar bar = LayoutHelper.FindParentObject <BreadcrumbBar>(this); if (bar != null && bar.TargetFrame != null) { IRibbonPage ribbonpage = bar.TargetFrame.Content as IRibbonPage; if (ribbonpage != null && ribbonpage.CanSave() && FrameEx.AllowNavigateOnChangeSet) { if (CommonMethods.ShowMessageOnNavigated(ribbonpage)) { return; } FrameEx.AllowNavigateOnChangeSet = false; } } MenuItem item = e.Source as MenuItem; object dataItem = item.DataContext; RemoveSelectedItem(dataItem); SelectedItem = dataItem; }
private void SelectCommandExecuted(object sender, ExecutedRoutedEventArgs e) { BreadcrumbBar bar = LayoutHelper.FindParentObject <BreadcrumbBar>(this); if (bar != null && bar.TargetFrame != null) { IRibbonPage page = bar.TargetFrame.Content as IRibbonPage; if (page != null && page.CanSave() && FrameEx.AllowNavigateOnChangeSet) { if (CommonMethods.ShowMessageOnNavigated(page)) { e.Handled = true; return; } FrameEx.AllowNavigateOnChangeSet = false; } } SelectedItem = null; RoutedEventArgs args = new RoutedEventArgs(Button.ClickEvent); RaiseEvent(args); }
public void VerifyDropdownItemTemplateWithNoControl() { BreadcrumbBar breadcrumb = null; RunOnUIThread.Execute(() => { breadcrumb = new BreadcrumbBar(); breadcrumb.ItemsSource = new List <string>() { "Node 1", "Node 2" }; // Set a custom ItemTemplate to be wrapped in a BreadcrumbBarItem. var itemTemplate = (DataTemplate)XamlReader.Load( @"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'> <TextBlock Text='{Binding}'/> </DataTemplate>"); breadcrumb.ItemTemplate = itemTemplate; var stackPanel = new StackPanel(); stackPanel.Width = 60; stackPanel.Children.Add(breadcrumb); Content = stackPanel; Content.UpdateLayout(); }); IdleSynchronizer.Wait(); Button ellipsisButton = null; RunOnUIThread.Execute(() => { ItemsRepeater breadcrumbItemsRepeater = (ItemsRepeater)breadcrumb.FindVisualChildByName("PART_ItemsRepeater"); Verify.IsNotNull(breadcrumbItemsRepeater, "The underlying items repeater (1) could not be retrieved"); var breadcrumbNode1 = breadcrumbItemsRepeater.TryGetElement(0) as BreadcrumbBarItem; Verify.IsNotNull(breadcrumbNode1, "Our custom ItemTemplate (1) should have been wrapped in a BreadcrumbBarItem."); ellipsisButton = (Button)breadcrumbNode1.FindVisualChildByName("PART_ItemButton"); Verify.IsNotNull(ellipsisButton, "The ellipsis item (1) could not be retrieved"); var automationPeer = new ButtonAutomationPeer(ellipsisButton); var invokationPattern = automationPeer.GetPattern(PatternInterface.Invoke) as IInvokeProvider; invokationPattern?.Invoke(); }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { Flyout ellipsisFlyout = (Flyout)ellipsisButton.Flyout; Verify.IsNotNull(ellipsisButton, "The ellipsis flyout (1) could not be retrieved"); ItemsRepeater ellipsisItemsRepeater = (ItemsRepeater)ellipsisFlyout.Content; Verify.IsNotNull(ellipsisItemsRepeater, "The underlying flyout items repeater (1) could not be retrieved"); ellipsisItemsRepeater.Loaded += (object sender, RoutedEventArgs e) => { TextBlock ellipsisNode1 = ellipsisItemsRepeater.TryGetElement(0) as TextBlock; Verify.IsNotNull(ellipsisNode1, "Our flyout ItemTemplate (1) should have been wrapped in a TextBlock."); // change this conditions bool testCondition = !(ellipsisNode1.Foreground is SolidColorBrush brush && brush.Color == Colors.Blue); Verify.IsTrue(testCondition, "Default foreground color of the BreadcrumbBarItem should not have been [blue]."); }; }); }
public void VerifyDropdownItemTemplateWithNoControl() { BreadcrumbBar breadcrumb = null; RunOnUIThread.Execute(() => { breadcrumb = new BreadcrumbBar(); breadcrumb.ItemsSource = new List <string>() { "Node 1", "Node 2" }; // Set a custom ItemTemplate to be wrapped in a BreadcrumbBarItem. var itemTemplate = (DataTemplate)XamlReader.Load( @"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'> <TextBlock Text='{Binding}'/> </DataTemplate>"); breadcrumb.ItemTemplate = itemTemplate; var stackPanel = new StackPanel(); stackPanel.Width = 60; stackPanel.Children.Add(breadcrumb); Content = stackPanel; Content.UpdateLayout(); }); IdleSynchronizer.Wait(); Button ellipsisButton = null; RunOnUIThread.Execute(() => { ItemsRepeater breadcrumbItemsRepeater = (ItemsRepeater)breadcrumb.FindVisualChildByName("PART_ItemsRepeater"); Verify.IsNotNull(breadcrumbItemsRepeater, "The underlying items repeater (1) could not be retrieved"); var breadcrumbNode1 = breadcrumbItemsRepeater.TryGetElement(0) as BreadcrumbBarItem; Verify.IsNotNull(breadcrumbNode1, "Our custom ItemTemplate (1) should have been wrapped in a BreadcrumbBarItem."); ellipsisButton = (Button)breadcrumbNode1.FindVisualChildByName("PART_ItemButton"); Verify.IsNotNull(ellipsisButton, "The ellipsis item (1) could not be retrieved"); var automationPeer = new ButtonAutomationPeer(ellipsisButton); var invokationPattern = automationPeer.GetPattern(PatternInterface.Invoke) as IInvokeProvider; invokationPattern?.Invoke(); }); // GetOpenPopups returns empty list in RS3. The scenario works, this just seems to be a // test/infra issue in RS3, so filtering it out for now. if (PlatformConfiguration.IsOsVersionGreaterThan(OSVersion.Redstone3)) { IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { var flyout = VisualTreeHelper.GetOpenPopups(Window.Current).Last(); Verify.IsNotNull(flyout, "Flyout could not be retrieved"); var ellipsisItemsRepeater = TestUtilities.FindDescendents <ItemsRepeater>(flyout).Single(); Verify.IsNotNull(ellipsisItemsRepeater, "The underlying flyout items repeater (1) could not be retrieved"); ellipsisItemsRepeater.Loaded += (object sender, RoutedEventArgs e) => { TextBlock ellipsisNode1 = ellipsisItemsRepeater.TryGetElement(0) as TextBlock; Verify.IsNotNull(ellipsisNode1, "Our flyout ItemTemplate (1) should have been wrapped in a TextBlock."); // change this conditions bool testCondition = !(ellipsisNode1.Foreground is SolidColorBrush brush && brush.Color == Colors.Blue); Verify.IsTrue(testCondition, "Default foreground color of the BreadcrumbBarItem should not have been [blue]."); }; }); } }
/// <summary> /// Appies the binding to the breadcrumb item. /// </summary> public void ApplyBinding() { object item = DataContext; if (item == null) { return; } BreadcrumbItem root = this; DataTemplate template = HeaderTemplate; DataTemplateSelector templateSelector = HeaderTemplateSelector; if (templateSelector != null) { template = templateSelector.SelectTemplate(item, root); } if (template == null) { DataTemplateKey key = GetResourceKey(item); if (key != null) { template = TryFindResource(key) as DataTemplate; } } root.SelectedItem = null; HierarchicalDataTemplate hdt = template as HierarchicalDataTemplate; if (template != null) { root.Header = template.LoadContent(); } else { root.Header = item; } root.DataContext = item; if (hdt != null) { // bind the Items to the hierarchical data template: root.SetBinding(BreadcrumbItem.ItemsSourceProperty, hdt.ItemsSource); } BreadcrumbBar bar = BreadcrumbBar; if (bar != null) { if (TraceBinding == null) { TraceBinding = bar.TraceBinding; } if (ImageBinding == null) { ImageBinding = bar.ImageBinding; } } if (TraceBinding != null) { root.SetBinding(BreadcrumbItem.TraceProperty, TraceBinding); } if (ImageBinding != null) { root.SetBinding(BreadcrumbItem.ImageProperty, ImageBinding); } ApplyProperties(item); }
public void VerifyCustomItemTemplate() { BreadcrumbBar breadcrumb = null; BreadcrumbBar breadcrumb2 = null; RunOnUIThread.Execute(() => { breadcrumb = new BreadcrumbBar(); breadcrumb.ItemsSource = new List <string>() { "Node 1", "Node 2" }; // Set a custom ItemTemplate to be wrapped in a BreadcrumbBarItem. var itemTemplate = (DataTemplate)XamlReader.Load( @"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'> <TextBlock Text='{Binding}'/> </DataTemplate>"); breadcrumb.ItemTemplate = itemTemplate; breadcrumb2 = new BreadcrumbBar(); breadcrumb2.ItemsSource = new List <string>() { "Node 1", "Node 2" }; // Set a custom ItemTemplate which is already a BreadcrumbBarItem. No wrapping should be performed. var itemTemplate2 = (DataTemplate)XamlReader.Load( @"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:controls='using:Microsoft.UI.Xaml.Controls'> <controls:BreadcrumbBarItem Foreground='Blue'> <TextBlock Text = '{Binding}'/> </controls:BreadcrumbBarItem> </DataTemplate>"); breadcrumb2.ItemTemplate = itemTemplate2; var stackPanel = new StackPanel(); stackPanel.Children.Add(breadcrumb); stackPanel.Children.Add(breadcrumb2); Content = stackPanel; Content.UpdateLayout(); }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { ItemsRepeater breadcrumbItemsRepeater = (ItemsRepeater)breadcrumb.FindVisualChildByName("PART_ItemsRepeater"); ItemsRepeater breadcrumbItemsRepeater2 = (ItemsRepeater)breadcrumb2.FindVisualChildByName("PART_ItemsRepeater"); Verify.IsNotNull(breadcrumbItemsRepeater, "The underlying items repeater could not be retrieved"); Verify.IsNotNull(breadcrumbItemsRepeater2, "The underlying items repeater could not be retrieved"); var breadcrumbNode1 = breadcrumbItemsRepeater.TryGetElement(1) as BreadcrumbBarItem; var breadcrumbNode2 = breadcrumbItemsRepeater2.TryGetElement(1) as BreadcrumbBarItem; Verify.IsNotNull(breadcrumbNode1, "Our custom ItemTemplate should have been wrapped in a BreadcrumbBarItem."); Verify.IsNotNull(breadcrumbNode2, "Our custom ItemTemplate should have been wrapped in a BreadcrumbBarItem."); // change this conditions bool testCondition = !(breadcrumbNode1.Foreground is SolidColorBrush brush && brush.Color == Colors.Blue); Verify.IsTrue(testCondition, "Default foreground color of the BreadcrumbBarItem should not have been [blue]."); testCondition = breadcrumbNode2.Foreground is SolidColorBrush brush2 && brush2.Color == Colors.Blue; Verify.IsTrue(testCondition, "The foreground color of the BreadcrumbBarItem should have been [blue]."); }); }