コード例 #1
0
        public void Draw()
        {
            if (!HasSelection)
            {
                return;
            }

            int visibleSelectionStartIndex = Math.Max(SelectionStart, _input.VisibleStartIndex);
            int visibleEndIndex            = _input.VisibleStartIndex + _input.VisibleLength - 1;
            int length = Math.Min(SelectionLength, visibleEndIndex - visibleSelectionStartIndex + 1);

            var offset = new Vector2(
                _input.Console.Padding + _input.Console.ConsoleInput.InputPrefixSize.X,
                _input.Console.WindowArea.Y + _input.Console.WindowArea.Height - _input.Console.Padding - _input.Console.FontSize.Y);

            float startX = _input.MeasureSubstring(_input.VisibleStartIndex, visibleSelectionStartIndex - _input.VisibleStartIndex).X;

            if (startX > 0)
            {
                startX += _input.Console.Font.Spacing;
            }
            float width         = _input.MeasureSubstring(visibleSelectionStartIndex, length).X;
            var   destRectangle = new RectangleF(
                offset.X + startX,
                offset.Y,
                width,
                _input.Console.FontSize.Y);

            _input.Console.SpriteBatch.Draw(
                _input.Console.WhiteTexture,
                destRectangle,
                Color);
        }
コード例 #2
0
 public void Draw()
 {
     if (_drawCaret)
     {
         float offset    = _input.Console.Padding + _input.InputPrefixSize.X;
         float positionX = _input.MeasureSubstring(_input.VisibleStartIndex, Index - _input.VisibleStartIndex).X;
         if (positionX > 0)
         {
             positionX += _input.Console.Font.Spacing;
         }
         var position = new Vector2(
             offset + positionX,
             _input.Console.WindowArea.Y + _input.Console.WindowArea.Height - _input.Console.Padding - _input.Console.FontSize.Y);
         _input.Console.SpriteBatch.DrawString(_input.Console.Font, Symbol, position, _input.Console.FontColor);
     }
 }