我正在为VS2012制作编辑器扩展,我需要在编辑器中找到任何字符的逻辑像素宽度。
我认为所有字符共享相同的宽度,但共享宽度随着编辑器的缩放量的变化而变化;当缩放为100%时,所有字符都是7个逻辑像素宽,否则它们都是7.33逻辑像素宽。
我可以通过写作找到任何角色的宽度:
// textview is an ITextView
textview.Caret.ContainingTextViewLine.TextWidth /
textview.Caret.ContainingTextViewLine.Length
然而,问题是插入符号所在的行是空的,因为它将被除以零。
答案 0 :(得分:1)
我没有找到问题的答案,但我找到了解决问题的方法:
VirtualSnapshotPoint Get_point(ITextCaret caret)
{
caret.ContainingTextViewLine.GetInsertionBufferPositionFromXCoordinate(...);
}
该方法使我无需使用任何字符的逻辑像素宽度。