Пример #1
0
        internal virtual void SetFirst(Vector scrollPos)
        {
            FirstInCache   = VirtualizingAverages.GetStartIndex(_templatedParent, _panelOffset - _cache.GetBackCacheSize(_tempViewport, _tempAverageItem), _items, Vert);
            _firstInView   = VirtualizingAverages.GetStartIndex(_templatedParent, _panelOffset, _items, Vert);
            _currentOffset = VirtualizingAverages.GetOffsetForIndex(_templatedParent, FirstInCache, _items, Vert);
            _numInView     = 0;
            _numInCache    = 0;
            NumInFullView  = 0;
            var av = VirtualizingAverages.GetEstimatedAverage(_templatedParent, _items, Vert);

            _tempAverageItem = Vert ? av.Height : av.Width;
        }
Пример #2
0
        internal override void SetFirst(Vector scrollPos)
        {
            _firstInView = (int)(Vert ? scrollPos.Y : scrollPos.X);
            if (_items is IGroupingView gv)
            {
                _firstInView = gv.GetLocalItemPosition(_firstInView);
            }
            ScrollOffset   = (int)(Vert ? scrollPos.Y : scrollPos.X) - _firstInView;
            _currentOffset = VirtualizingAverages.GetOffsetForIndex(_templatedParent, _firstInView, _items, Vert);
            FirstInCache   = VirtualizingAverages.GetStartIndex(_templatedParent, _currentOffset - _cache.GetBackCacheSize(_tempViewport, _tempAverageItem), _items, Vert);
            _currentOffset = VirtualizingAverages.GetOffsetForIndex(_templatedParent, FirstInCache, _items, Vert);
            _numInView     = 0;
            _numInCache    = 0;
            NumInFullView  = 0;
            var av = VirtualizingAverages.GetEstimatedAverage(_templatedParent, _items, Vert);

            _tempAverageItem = Vert ? av.Height : av.Width;
        }
Пример #3
0
 public override Size ArrangeOverride(Size finalSize)
 {
     PdmLogger.Log(0, PdmLogger.IndentEnum.In, $"Arrange Realized {_realizedChildren}  {finalSize}  {++_overrideCount}  {Owner.Bounds}");
     foreach (var container in _realizedChildren)
     {
         var control     = container.ContainerControl;
         var startOffset = VirtualizingAverages.GetOffsetForIndex(GroupControl.TemplatedParent, container.Index, Items, Vertical);
         if (Vertical)
         {
             control.Arrange(new Rect(new Point(0, startOffset), new Size(finalSize.Width, control.DesiredSize.Height)));
         }
         else
         {
             control.Arrange(new Rect(new Point(startOffset, 0), new Size(control.DesiredSize.Width, finalSize.Height)));
         }
     }
     Owner.Panel.Arrange(new Rect(finalSize));
     PdmLogger.Log(1, PdmLogger.IndentEnum.Out, $"Arranged Realized {_realizedChildren}  {finalSize}  {_overrideCount}  {Owner.Bounds}");
     return(finalSize);
 }