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);
        }
Ejemplo n.º 5
0
        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);
        }