private void ShowDropDownExecuted(object sender) { BreadcrumbBar bar = sender as BreadcrumbBar; if (bar.IsEditable && bar.DropDownItems.OfType <object>().Count() > 0) { bar.IsDropDownOpen = true; } }
private void OnSelectedBreadcrumbPropertyChanged(BreadcrumbBar bar, AvaloniaPropertyChangedEventArgs e) { BreadcrumbItem selected = e.NewValue as BreadcrumbItem; bar.IsRootSelected = selected == bar.RootItem; if (bar.IsInitialized) { RoutedPropertyChangedEventArgs <BreadcrumbItem> args = new RoutedPropertyChangedEventArgs <BreadcrumbItem>(e.OldValue as BreadcrumbItem, e.NewValue as BreadcrumbItem, BreadcrumbBar.SelectedBreadcrumbChangedEvent); bar.RaiseEvent(args); } }
private void PathPropertyChanged(BreadcrumbBar bar, AvaloniaPropertyChangedEventArgs e) { string newPath = e.NewValue as string; // bar.PathBinding = newPath; if (!bar.IsInitialized) { bar.Path = bar.initPath = newPath; } else { bar.BuildBreadcrumbsFromPath(newPath); bar.OnPathChanged(e.OldValue as string, newPath); } }
private static double CoerceProgressValue(IAvaloniaObject o, double baseValue) { BreadcrumbBar bar = o as BreadcrumbBar; double value = (double)baseValue; if (value > bar.ProgressMaximum) { value = bar.ProgressMaximum; } if (value < bar.ProgressMinimum) { value = bar.ProgressMinimum; } return(value); }
protected override void OnPointerEnter(PointerEventArgs e) { var prop = e.GetCurrentPoint(this).Properties; isPressed = prop.IsLeftButtonPressed; IVisual parent = TemplatedParent as IVisual; while (parent != null && !(parent is BreadcrumbBar)) { parent = VisualTree.VisualExtensions.GetVisualParent(parent); } BreadcrumbBar bar = parent as BreadcrumbBar; if (bar != null /* && bar.IsKeyboardFocusWithin*/) //? { Focus(); } IsPressed = isPressed; base.OnPointerEnter(e); }
/// <summary> /// Occurs when the Root property is changed. /// </summary> /// <param name="oldValue"></param> /// <param name="newValue"></param> protected virtual void OnRootChanged(BreadcrumbBar bar, object oldValue, object newValue) { if (_isInitial == false) { newValue = GetFirstItem(newValue); } BreadcrumbItem oldRoot = oldValue as BreadcrumbItem; if (oldRoot != null) { oldRoot.IsRoot = false; } if (newValue == null) { RootItem = null; Path = null; } else { BreadcrumbItem root = newValue as BreadcrumbItem; if (root == null) { if (_isInitial == false) { root = BreadcrumbItem.CreateItem(newValue); } else { root = BreadcrumbItem.CreateInitialItem(newValue); } } if (root != null) { root.IsRoot = true; } if (oldValue != null) { this.LogicalChildren.Remove((ILogical)oldValue); } RootItem = root; if (root != null) { //bool result = LogicalTree.LogicalExtensions.GetLogicalParent(root as ILogical) == null; ////if (LogicalTree.LogicalExtensions.GetLogicalParent(root as ILogical) == null) //{ // this.LogicalChildren.Remove(root); // this.LogicalChildren.Add(root); //} } SelectedItem = root != null ? root.DataContext : null; if (IsInitialized) { SelectedBreadcrumb = root; } else { SelectedBreadcrumb = root; } } }
private void OnRootPropertyChanged(BreadcrumbBar bar, AvaloniaPropertyChangedEventArgs e) { bar.OnRootChanged(bar, e.OldValue, e.NewValue); }
/// <summary> /// Occurs when the selected item of an embedded BreadcrumbItem is changed. /// </summary> /// <param name="oldvalue"></param> /// <param name="newValue"></param> protected virtual void OnSelectedItemChanged(BreadcrumbBar sender, object oldvalue, object newValue) { }
private void OnSelectedItemPropertyChanged(BreadcrumbBar bar, AvaloniaPropertyChangedEventArgs e) { bar.OnSelectedItemChanged(bar, e.OldValue, e.NewValue); }
private void OverflowPressedChanged(BreadcrumbBar bar, object e) { bar.OnOverflowPressedChanged(); }
private void OnRootItemPropertyChanged(BreadcrumbBar o, AvaloniaPropertyChangedEventArgs e) { o.OnRootItemChanged((BreadcrumbItem)e.OldValue, (BreadcrumbItem)e.NewValue); }
private void IsDropDownOpenChanged(BreadcrumbBar bar, AvaloniaPropertyChangedEventArgs e) { bar.OnDropDownOpenChanged((bool)e.OldValue, (bool)e.NewValue); }
private void ProgressValuePropertyChanged(BreadcrumbBar bar, AvaloniaPropertyChangedEventArgs e) { RoutedEventArgs args = new RoutedEventArgs(BreadcrumbBar.ProgressValueChangedEvent); bar.RaiseEvent(args); }
private void OnPathBindingPropertyChanged(BreadcrumbBar o, AvaloniaPropertyChangedEventArgs e) { o.SetValue(PathProperty, e.NewValue); }
/// <summary> /// Appies the binding to the breadcrumb item. /// </summary> public void ApplyBinding() { object item = DataContext; if (item == null) { return; } BreadcrumbItem root = this; IDataTemplate template = HeaderTemplate; //DataTemplateSelector templateSelector = HeaderTemplateSelector; //if (templateSelector != null) //{ // template = templateSelector.SelectTemplate(item, root); //} if (template == null) { //DataTemplateKey key = GetResourceKey(item); //if (key != null) //{ // this.TryFindResource(key, template); //} } root.SelectedItem = null; TreeDataTemplate hdt = template as TreeDataTemplate; 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.Bind(BreadcrumbItem.ItemsProperty, hdt.ItemsSource); } BreadcrumbBar bar = BreadcrumbBar; if (bar != null) { if (TraceBinding == null) { TraceBinding = bar.TraceBinding; } if (ImageBinding == null) { ImageBinding = bar.ImageBinding; } } if (TraceBinding != null) { root.Bind(BreadcrumbItem.TraceProperty, TraceBinding); } if (ImageBinding != null) { root.Bind(BreadcrumbItem.ImageProperty, ImageBinding); } ApplyProperties(item); }