gpt4 book ai didi

c# - AvalonEdit 滚动到行

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:51 24 4
gpt4 key购买 nike

我在让 AvalonEdit TextEditor 滚动到特定行时遇到了很多麻烦。 ScrollTo() 的行为只是滚动直到该行位于 View 中间。我尝试了很多在互联网上找到的不同方法,所以喜欢用

获取偏移量
double visualTop = textEditor.TextArea.TextView.GetVisualTopByDocumentLine(line);

但每个人都有自己的问题。例如,在上面的行中,我遇到了 TextView.VisualLines 的异常。

最佳答案

我最终发现,因为我的文本都是统一高度,所以我可以只执行 line height * line# 来获得偏移量。我首先尝试使用 (Editor.TextArea.TextView.DocumentHeight/Editor.Document.LineCount) 来计算行高,但这似乎有点偏离,可能是由于一些浮点问题,你在文档中越往下走越离谱。但是,由于我的文档高度统一,我意识到我可以使用 TextView.DefaultLineHeight 属性并想出了:

double vertOffset = (Editor.TextArea.TextView.DefaultLineHeight) * Line;
Editor.ScrollToVerticalOffset(vertOffset);

这非常一致地滚动到文档中的正确位置。

关于c# - AvalonEdit 滚动到行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39379290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com