1

我正在爲VS2012編輯器擴展,我需要在編輯器中找到任何字符的邏輯像素寬度。在Visual Studio編輯器中獲取任何字符的邏輯像素寬度?

我認爲所有字符共享相同的寬度,但共享寬度隨着編輯器縮放量的變化而變化;當變焦率爲100%時,所有字符都是7個邏輯像素寬,否則它們都是7.33個邏輯像素寬。

我可以寫找到任何字符的寬度:
// textview is an ITextView
textview.Caret.ContainingTextViewLine.TextWidth /
textview.Caret.ContainingTextViewLine.Length

然而,問題是當插入符號是上線是空的,因爲這將是一個除數爲零。

+0

難道你只是模擬一個空間,獲取寬度,並模擬刪除空間,當你想要的寬度? – SimpleVar 2013-05-06 00:52:36

+0

是的,我可以,但它似乎是一個黑客。這是我最後的手段。 – daniel1426 2013-05-06 00:55:08

+0

使用textwidth函數.. – matzone 2013-05-06 00:55:10

回答

1

我沒有找到一個回答我的問題,但我找到了解決我的問題:

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

這種方法,也就沒有必要對我來說,任何字符的邏輯像素寬度的工作。

相關問題