1

我正在为 VS2012 制作一个编辑器扩展,我需要在编辑器中找到任何字符的逻辑像素宽度。

我认为所有字符共享相同的宽度,但是共享宽度随着编辑器缩放量的变化而变化;当缩放为 100% 时,所有字符都是 7 个逻辑像素宽,否则它们都是 7.33 个逻辑像素宽。

我可以通过以下方式找到任何字符的宽度:
// textview is an ITextView
textview.Caret.ContainingTextViewLine.TextWidth /
textview.Caret.ContainingTextViewLine.Length

但是,问题是插入符号所在的行是空的,因为那将是除以零。

4

1 回答 1

1

我没有找到问题的答案,但我找到了解决问题的方法:

VirtualSnapshotPoint Get_point(ITextCaret caret)
    {
    caret.ContainingTextViewLine.GetInsertionBufferPositionFromXCoordinate(...);
    }

这种方法使我不必使用任何字符的逻辑像素宽度。

于 2013-05-06T14:15:16.667 回答