Chr*_*ris 7 .net c# wpf visual-studio-2010 vs-extensibility
我正在试图找出如何在IWpfTextView中获取可见行以基于可见线放置ViewPort和/或文本装饰.
似乎这4个涉及某种方式,至少是Spans.为了确保我理解,Span只是TextView中的一系列字符吗?
IWpfTextView.TextViewLines是可见线的集合.在某些情况下,第一行和最后一行可能隐藏或部分可见(但第二行和倒数第二行应始终完全可见).要获得完全可见的行集合,您可以使用IWpfTextView.TextViewLines.FirstVisibleLine和IWpfTextView.TextViewLines.LastVisibleLine过滤集合ITextViewLine.VisibilityState == VisibilityState.FullyVisible.
A Span是用于包装起始位置和长度的结构,但它不包含实际文本.VS编辑器中有多种跨度用于不同的目的,例如a SnapshotSpan是a的跨度ITextSnapshot,它存储起始位置,长度和它所属的快照.
编辑:
对不起,我错过了标题中的问题.
A Point表示位置,a Span表示范围.以参数为参数的大多数VS Editor API都会为另一个提供过载.
ITrackingPoint并且ITrackingSpan离开了ITextBuffer."跟踪"意味着它们在文本缓冲区更改时偏移/增大/缩小.它们与快照无关.
SnapshotPoint并且SnapshotSpan离开了ITextSnapshot.他们受到约束ITextSnapshot并且是不可改变的.
ITextViewLine是用于显示的格式化行.通常你不需要改变它,只能从它获得的视觉信息像Height或VisibilityState.
| 归档时间: |
|
| 查看次数: |
1028 次 |
| 最近记录: |