什么是" ITextViewLine.Top"属性?

时间:2014-08-01 08:52:42

标签: c# visual-studio-2010 editor visual-studio-extensions

在MSDN中,Top属性的定义如下:

  

获取文本渲染坐标系中此行的上边缘的位置。

我的定义有点不清楚。当我检查Visual Studio编辑器中TextView的Top属性返回的值时,它是否定的。

如何解读" Top"价值?是否有一个参考点来自" TOP"是否为每一行计算了属性值?

2 个答案:

答案 0 :(得分:2)

ITextViewLine.Top是相对于ITextView.ViewportTop的位置。后者的documentation提示它可能是否定的:

该值可以是正数也可以是负数。仅在部分更改视口布局时,ViewportTop会增加或减少视图滚动的向上或向下像素数。当视口布局完全更改(以便更改先前布局的所有行)时,ViewportTop将重置为0.0。

基本上,你应该考虑到所有行都是其中一部分的抽象坐标系。在编辑器中滚动只是在该坐标系内移动视口。一些操作(比如在文件的开头插入一个新行),而不是"移动"所有的线条,只需在顶部插入另一条带有负顶部的线条,然后视口向上移动到那条线。

答案 1 :(得分:0)

获取文本行的文本行上边缘的位置。