如何避免插入符号偏移量重置为0
本文关键字:偏移量 何避免 插入 符号 | 更新日期: 2023-09-27 18:12:52
我正在使用ICSharpCode的AvalonEdit文本编辑器,并且我在文档列表后的TabControl中显示不同的TextEditor控件。
TabControl的WPF代码:
<TabControl
Grid.Row="0"
ItemsSource="{Binding OpennedFiles, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Data.Name"
SelectedItem="{Binding SelectedFile, UpdateSourceTrigger=PropertyChanged}">
<TabControl.ContentTemplate>
<DataTemplate>
<AE:TextEditor ShowLineNumbers="True" FontFamily="Consolas" Unloaded="TextEditor_Unloaded" FontSize="16" Loaded="TextEditor_Loaded" Document="{Binding Document}" SyntaxHighlighting="Python" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
我的问题是,当你改变选择的选项卡时,之前选择的文档的插入符号偏移量重置为0,这真的很烦人。
我已经尝试绑定文本编辑器的插入符号偏移属性,但它不是一个依赖属性,因为我不确定它是否会工作,我没有勇气创建一个附加的依赖属性。
我怀疑它来自于这样一个事实,即文档在选项卡选择的文本编辑器中重新加载,并且由于插入符号偏移似乎依赖于TextArea,它返回到其默认值,但我仍然不知道如何避免这种情况。
有什么提示吗
尝试将插入符号偏移量保存到数据库中,然后在加载texteditor
时将值设置回来。this.ScrollToVerticalOffset(value1); //top offset of the editor (example line 120)
this.TextArea.Caret.Line = value2; //value of the cursor line