public override void Recalculate() { base.Recalculate(); _destRectTop = new Rectangle(CleanRect.Left, CleanRect.Top, CleanRect.Width, BorderSize); _destRectLeft = new Rectangle(CleanRect.Left, CleanRect.Top, BorderSize, CleanRect.Height); _destRectRight = new Rectangle(CleanRect.Right - BorderSize, CleanRect.Top, BorderSize, CleanRect.Height); _destRectBottom = new Rectangle(CleanRect.Left, CleanRect.Bottom, CleanRect.Width, BorderSize); var scrollWidth = VerticalItemCount > VerticalMaxVisibleItems ? Scroll.Width : 0; for (int i = VerticalScrollIndex; i < _items.Count && i - VerticalScrollIndex < VerticalMaxVisibleItems; i++) { var rect = new Rectangle(SpriteConst.Width + ImageMargin + _margin, 8 + _margin + ((i - VerticalScrollIndex) * VerticalItemHeight), Width - (SpriteConst.Width - ImageMargin) - (_margin * 2), VerticalItemHeight); var imageRect = new Rectangle(rect.X - SpriteConst.Width - ImageMargin, rect.Y - 8, rect.Width, rect.Height); _items[i].Label.SetRect(rect); _items[i].ImageBox.SetRect(imageRect); _items[i].ImageBox.Recalculate(); _items[i].Label.Recalculate(); _items[i].Bounds = new Rectangle(_items[i].ImageBox.Bounds.Left, _items[i].ImageBox.Bounds.Top, Width - (_margin * 2) - scrollWidth, VerticalItemHeight); } _scrollBar.Recalculate(); _clickable.SetRect(CleanRect); IsDirty = false; }
public override void Recalculate() { base.Recalculate(); _destRectTop = new Rectangle(CleanRect.Left, CleanRect.Top, CleanRect.Width, BorderSize); _destRectLeft = new Rectangle(CleanRect.Left, CleanRect.Top, BorderSize, CleanRect.Height); _destRectRight = new Rectangle(CleanRect.Right - BorderSize, CleanRect.Top, BorderSize, CleanRect.Height); _destRectBottom = new Rectangle(CleanRect.Left, CleanRect.Bottom, CleanRect.Width, BorderSize); for (int i = VerticalScrollIndex * HorizontalMaxVisibleItems; i < _items.Count && i - (VerticalScrollIndex * HorizontalMaxVisibleItems) < MaxVisibleItemsTotal; i++) { var rect = new Rectangle( ((i - VerticalScrollIndex * HorizontalMaxVisibleItems) % HorizontalMaxVisibleItems) * ItemWidth, ((i - VerticalScrollIndex * HorizontalMaxVisibleItems) / HorizontalMaxVisibleItems) * ItemHeight, ItemWidth, ItemHeight); _items[i].ImageBox.SetRect(rect); _items[i].ImageBox.Recalculate(); _items[i].Bounds = _items[i].ImageBox.Bounds; } _scrollBar.Recalculate(); _clickable.SetRect(CleanRect); IsDirty = false; }