public override HitBox HitTest() { if (!IsVisible()) { return(HitBox.Miss); } HitBox hit; if ((hit = _scrollBar.HitTest()).IsHit) { return(hit); } for (int i = VerticalScrollIndex; i < _items.Count && i - VerticalScrollIndex < VerticalMaxVisibleItems; i++) { if (!_items[i].HitTest()) { continue; } _selectedItem = _items[i]; OnSelect?.Invoke(_items[i].Value); return(HitBox.Hit(this)); } _clickable.HitTest(MouseButton.Left); if (_clickable.IsDown(MouseButton.Left)) { return(HitBox.Hit(this)); } return(HitBox.Miss); }