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);
        }