IWpfTextView.TextViewLines
là tập hợp các dòng hiển thị. Trong một số trường hợp, dòng đầu tiên và cuối cùng có thể bị ẩn hoặc hiển thị một phần (nhưng dòng thứ 2 và thứ 2 đến cuối cùng phải luôn luôn hiển thị đầy đủ). Để có được bộ sưu tập các dòng hiển thị đầy đủ, bạn có thể sử dụng IWpfTextView.TextViewLines.FirstVisibleLine
và IWpfTextView.TextViewLines.LastVisibleLine
hoặc lọc bộ sưu tập theo ITextViewLine.VisibilityState == VisibilityState.FullyVisible
.
A Span
là cấu trúc để bao quanh vị trí bắt đầu và độ dài nhưng không giữ văn bản thực. Có nhiều loại nhịp trong VS Editor cho các mục đích khác nhau, ví dụ: SnapshotSpan
là khoảng cách của một số ITextSnapshot
, lưu trữ vị trí bắt đầu, độ dài và ảnh chụp nhanh.
Edit:
Xin lỗi tôi bỏ lỡ câu hỏi trong tiêu đề.
A Point
đề cập đến một vị trí và Span
là phạm vi. Hầu hết các API của VS Editor có tham số là một tham số có quá tải cho các tham số khác.
ITrackingPoint
và ITrackingSpan
tắt số ITextBuffer
. "Theo dõi" có nghĩa là chúng bù đắp/tăng/thu nhỏ khi thay đổi bộ đệm văn bản. Họ là bất khả tri chụp nhanh.
SnapshotPoint
và SnapshotSpan
tắt số ITextSnapshot
. Chúng được gắn với ITextSnapshot
và không thay đổi.
ITextViewLine
là dòng được định dạng để hiển thị. Thông thường, bạn không cần phải thay đổi nó, chỉ nhận được thông tin trực quan từ nó như Height
hoặc VisibilityState
.
Nguồn
2012-06-18 23:47:44
Được rồi, để cập nhật của riêng tôi. – Chris
Quên để thực sự cập nhật. 1. TextViews không được suy nghĩ theo dòng. Điều này là do phác thảo, bọc từ, vv khác với TextBuffer từ bộ đệm trực quan. 2. SnapshotSpan vs SnapshotPoint - Span đại diện cho một chuỗi các ký tự. Điểm, một ký tự. 3. TrackingPoint vs TrackingSpan. Tương tự như Point và Span khác, ngoại trừ được sử dụng để xác định vị trí trong ViewPort. Tôi nghĩ rằng tôi là chính xác về những điều này. Hoặc ít nhất dường như đang di chuyển theo cách đó. – Chris