获取基于像素偏移的字符串索引

我自定义绘制一个文本框,现在我正在实现用户可以点击一行并将光标移动到他点击的位置的部分。获取基于像素偏移的字符串索引

我知道如何获得他点击的文本行,因为字符高度在所有字体中是恒定的,但不是列,因为我不知道如何说“让我把所有可以绘制的文本在像素数量之前“,并且因为字符宽度不一致,除非您使用固定宽度的字体,这不是保证。

所以我有点从我绘制字符串(0),然后我有点用户点击。我如何获得他们点击的字符的字符串索引?

其他信息:我通过将行存储在List中然后迭代列表并在每行上使用Graphics.DrawString来绘制文本。

回答:

没有简单的方法在像素中查找字符。

但是,您可以找到字符串将填充的像素。使用Graphics.MeasureCharacterRanges方法。您可以对字符串执行二分搜索,直到找到MeasureCharacterRanges返回光标位置的字符串。

注:您可能会看到Graphics.MeasureString方法和被诱惑使用。别!该方法不会返回准确的测量结果。我不记得为什么,但如果你尝试,你会做你的头!

以上是 获取基于像素偏移的字符串索引 的全部内容, 来源链接: utcz.com/qa/267270.html

回到顶部