internal void AddAdorner(
            AdornerLayer treeViewAdornerLayer, FrameworkElement adornedElement, ExplorerEFElement explorerElement,
            ExplorerFrame explorerFrame)
        {
            var adornerY = GetAdornerY(adornedElement, explorerElement, explorerFrame);

            if (adornerY >= 0)
            {
                SearchTickAdorner adorner;
                if (!_adorners.TryGetValue(adornerY, out adorner))
                {
                    adorner = new SearchTickAdorner(adornerY, adornedElement);
                    _adorners[adornerY] = adorner;
                    treeViewAdornerLayer.Add(adorner);

                    // adding adorners in batches of 100 - see bug: Windows OS Bugs 1750717 
                    if ((_adorners.Count % 100) == 0)
                    {
                        treeViewAdornerLayer.UpdateLayout();
                    }
                }

                adorner.AddExplorerElement(explorerElement);
            }
        }
示例#2
0
        internal void AddAdorner(
            AdornerLayer treeViewAdornerLayer, FrameworkElement adornedElement, ExplorerEFElement explorerElement,
            ExplorerFrame explorerFrame)
        {
            var adornerY = GetAdornerY(adornedElement, explorerElement, explorerFrame);

            if (adornerY >= 0)
            {
                SearchTickAdorner adorner;
                if (!_adorners.TryGetValue(adornerY, out adorner))
                {
                    adorner             = new SearchTickAdorner(adornerY, adornedElement);
                    _adorners[adornerY] = adorner;
                    treeViewAdornerLayer.Add(adorner);

                    // adding adorners in batches of 100 - see bug: Windows OS Bugs 1750717
                    if ((_adorners.Count % 100) == 0)
                    {
                        treeViewAdornerLayer.UpdateLayout();
                    }
                }

                adorner.AddExplorerElement(explorerElement);
            }
        }
示例#3
0
        internal static double GetAdornerY(FrameworkElement adornedElement, ExplorerEFElement explorerElement, ExplorerFrame explorerFrame)
        {
            var treeViewItemY = explorerFrame.GetY(explorerFrame.GetTreeViewItem(explorerElement, true));

            // The adorner Y offset in the scrollbar adornedElement
            var size    = SearchTickAdorner.GetRectangleSize(SearchTickAdorner.GetTickSize(adornedElement));
            var padding = (Thickness)adornedElement.GetValue(Border.PaddingProperty);
            var y       = padding.Top +
                          ((adornedElement.ActualHeight - padding.Top - padding.Bottom) * treeViewItemY)
                          / (explorerFrame.ScrollViewer.ExtentHeight);

            return(y - (y % size.Height) + size.Height);
        }
 public AdornerAutomationPeer(SearchTickAdorner owner)
     : base(owner)
 {
     // do nothing
 }
示例#5
0
 public AdornerAutomationPeer(SearchTickAdorner owner)
     : base(owner)
 {
     // do nothing
 }