1

Я делаю расширение редактора для VS2012, и мне нужно найти ширину логического пикселя любого символа в редакторе.Получение логической ширины пикселя любого символа в редакторе визуальной студии?

Я думаю, что все символы имеют одинаковую ширину, но общая ширина изменяется с изменением размера масштабирования редактора; когда масштаб составляет 100%, все символы имеют 7 логических пикселей в ширину, в противном случае все они имеют 7,33 логических пиксела в ширину.

я могу найти ширину любого характера, написав:
// textview is an ITextView
textview.Caret.ContainingTextViewLine.TextWidth /
textview.Caret.ContainingTextViewLine.Length

Однако, проблема в том, когда линия, что каретка на пусто, так как это было бы деление на ноль.

+0

Не могли бы вы просто имитировать пространство, получить ширину и имитировать удаление пространства, когда вы хотите ширину? – SimpleVar

+0

Да, я мог, но это похоже на хак. это мое последнее средство. – daniel1426

+0

Используйте функцию текстовой ширины. – matzone

ответ

1

Я не нашел ответа на мой вопрос, но я нашел решение моей проблемы:

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

Этот метод сделал ненужным для меня работать с логической ширины пикселя любого символа.

 Смежные вопросы

  • Нет связанных вопросов^_^