Exemplo n.º 1
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();


            if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)
            {
                return;
            }

            btnToggle = (ToggleButton)this.Template.FindName("btnToggle", this);
            bcoreCM   = (ContextMenu)this.Template.FindName("bcoreCM", this);
            tbox      = (TextBox)this.Template.FindName("tbox", this);
            BreadcrumbBackgroundGrid = (Grid)this.Template.FindName("BreadcrumbBackgroundGrid", this);



            this.AddHandler(BreadcrumbItem.SelectedEvent, (RoutedEventHandler) delegate(object sender, RoutedEventArgs e)
            {
                BreadcrumbItem item = (BreadcrumbItem)e.OriginalSource;
                SelectedValue       = (item.DataContext);
                e.Handled           = true;
            });

            this.AddHandler(Button.ClickEvent, (RoutedEventHandler) delegate(object sender, RoutedEventArgs e)
            {
                if (e.OriginalSource.Equals(btnToggle))
                {
                    //RootModel.IsBreadcrumbVisible = !RootModel.IsBreadcrumbVisible;
                    if (!btnToggle.IsChecked == true)
                    {
                        tbox.Focus();
                        tbox.SelectAll();
                    }
                }
                //else if (RefreshCommand != null)
                //    RefreshCommand.Execute(null);
            });

            this.AddHandler(TextBox.LostFocusEvent, (RoutedEventHandler) delegate(object sender, RoutedEventArgs e)
            {
                if (e.OriginalSource.Equals(tbox))
                {
                    if (!btnToggle.IsMouseOver)
                    {
                        ToggleTextBoxVisibility(false);
                    }
                    ////if (this.IsKeyboardFocusWithin)
                    //RootModel.IsBreadcrumbVisible = true;
                }
            });

            SetupAnimations();

            if (!EnableAutoFade)
            {
                UnfadeStoryBoard.Begin();
            }
        }
Exemplo n.º 2
0
        protected override DependencyObject GetContainerForItemOverride()
        {
            BreadcrumbItem retVal = new BreadcrumbItem();

            retVal.ShowToggle = false;
            retVal.IsTopLevel = false;
            return(retVal);
        }
Exemplo n.º 3
0
 private void updateToggle()
 {
     if (this.Items.Count > 0)
     {
         BreadcrumbItem firstItem = this.ItemContainerGenerator.ContainerFromIndex(0) as BreadcrumbItem;
         if (firstItem != null)
         {
             firstItem.ShowCaption = this.Items.Count == 1;
         }
     }
 }
Exemplo n.º 4
0
        //private List<UIElement> GhostFolders = new List<UIElement>();

        //private void ArrangeChildren2(double availableSize, double firstItemWidth, bool arrangeVirtual)
        //{
        //    double curX = firstItemWidth;

        //    for (int i = Children.Count - 1; i >= 1; i--)
        //    {
        //        BreadcrumbItem child = (BreadcrumbItem)Children[i];
        //        if (!(child.IsShadowItem && !arrangeVirtual))
        //        {
        //            if (curX + child.DesiredSize.Width <= availableSize)
        //                curX += child.DesiredSize.Width;
        //            else break;
        //        }

        //    }
        //    ArrangeChildren(curX + firstItemWidth, firstItemWidth, arrangeVirtual);

        //}


        private void ArrangeChildren(double availableSize, double firstItemWidth, bool arrangeVirtual)
        {
            double curX = availableSize;

            for (int i = Children.Count - 1; i >= 1; i--)
            {
                BreadcrumbItem child = (BreadcrumbItem)Children[i];

                if (child.IsShadowItem && !arrangeVirtual)
                {
                    SetArrangedRect(child, new Rect(0, 0, 0, 0));
                }
                else
                {
                    if (curX >= firstItemWidth || i == Children.Count - 1)
                    {
                        if (curX - firstItemWidth < child.DesiredSize.Width)
                        {
                            Rect newRect = new Rect(new Point(firstItemWidth, 0), new Point(curX + firstItemWidth, child.DesiredSize.Height));
                            SetArrangedRect(child, newRect);
                        }
                        else
                        {
                            SetArrangedRect(child, new Rect(curX - child.DesiredSize.Width + firstItemWidth, 0, child.DesiredSize.Width,
                                                            child.DesiredSize.Height));
                        }
                        SetIsArranged(child, true);
                    }
                    else
                    {
                        for (int j = 1; j <= Math.Min(i, Children.Count - 1); j++)
                        {
                            child = (BreadcrumbItem)Children[j];
                            SetArrangedRect(child, new Rect(0, 0, 0, 0));
                            child.Arrange(GetArrangedRect(child));
                            SetIsArranged(child, false);
                            //GhostFolders.Add(child);
                        }
                        break;
                    }

                    child.Arrange(GetArrangedRect(child));
                    curX -= child.DesiredSize.Width;
                }
            }
        }
Exemplo n.º 5
0
        public static object OnShowCaptionCoerce(DependencyObject obj, object value)
        {
            BreadcrumbItem item = (BreadcrumbItem)obj;

            if (item._loaded)
            {
                item.raiseShowCaptionEvent((bool)value);
            }
            else
            {
                RoutedEventHandler action = null;
                action = (RoutedEventHandler) delegate
                {
                    item.Loaded -= action;
                    if (!item._showCaptionHandled && !(bool)value)
                    {
                        item.raiseShowCaptionEvent((bool)value);
                    }
                    item._showCaptionHandled = true;
                };
                item.Loaded += action;
            }
            return(value);
        }