加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ITrackingPoint,ITrackingSpan,SnapshotPoint,SnapshotSpa

发布时间:2020-12-15 07:59:30 所属栏目:百科 来源:网络整理
导读:我正在试图找出如何在I WpfTextView中获取可见行以基于可见线放置ViewPort和/或文本装饰. 似乎这4个涉及某种方式,至少是Spans.为了确保我理解,Span只是TextView中的一系列字符吗? 解决方法 IWpfTextView.TextViewLines是可见行的集合.在某些情况下,第一行和
我正在试图找出如何在I WpfTextView中获取可见行以基于可见线放置ViewPort和/或文本装饰.

似乎这4个涉及某种方式,至少是Spans.为了确保我理解,Span只是TextView中的一系列字符吗?

解决方法

IWpfTextView.TextViewLines是可见行的集合.在某些情况下,第一行和最后一行可能是隐藏的或部分可见的(但第二行和倒数第二行应始终完全可见).要获取完全可见的行集合,可以使用IWpfTextView.TextViewLines.FirstVisibleLine和IWpfTextView.TextViewLines.LastVisibleLine,或者通过ITextViewLine.VisibilityState == VisibilityState.FullyVisible过滤集合.

Span是一个用于包装起始位置和长度的结构,但它不包含实际文本. VS编辑器中有多种跨度用于不同目的,例如,SnapshotSpan是ITextSnapshot的跨度,它存储起始位置,长度及其所属的快照.

编辑:

对不起,我错过了标题中的问题.

Point指的是一个位置,Span指的是一个范围.以参数为参数的大多数VS Editor API都会为另一个提供过载.

ITrackingPoint和ITrackingSpan不属于ITextBuffer. “跟踪”意味着它们随着文本缓冲区的变化而偏移/增大/缩小.它们是快照不可知的.

SnapshotPoint和SnapshotSpan不在ITextSnapshot中.它们绑定到ITextSnapshot并且是不可变的.

ITextViewLine是用于显示的格式化行.通常您不需要更改它,只需从Height或VisibilityState获取视觉信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读