获取visual studio编辑器中任何字符的逻辑像素宽度?

时间:2013-05-06 00:50:22

标签: c# visual-studio-2012 visual-studio-addins visual-studio-sdk

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

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

我可以通过写作找到任何角色的宽度:
// textview is an ITextView
textview.Caret.ContainingTextViewLine.TextWidth /
textview.Caret.ContainingTextViewLine.Length

然而,问题是插入符号所在的行是空的,因为它将被除以零。

1 个答案:

答案 0 :(得分:1)

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

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

该方法使我无需使用任何字符的逻辑像素宽度。