/// <summary> /// /// </summary> public void Move(TextPos pos, bool isResetBaseX) { Pos = pos; _textView.DrawingMetricsMeasurer.CalcTotalWidth( Pos.LineIndex, Pos.CharIndex, out var totalWidth, out var totalColumnCount); Location = new Point2D(CharSize.RoundWidth(totalWidth), _textView.GetLineHeight() * Pos.LineIndex); CurrentColumnIndex = totalColumnCount; if (isResetBaseX) { BaseX = Location.X; } if (_textView.SharedInfo.HasFocus) { _isCaretPositive = true; _blinkTimer.Restart(); } }