如何避免插入符号偏移量重置为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,它返回到其默认值,但我仍然不知道如何避免这种情况。

有什么提示吗

如何避免插入符号偏移量重置为0

尝试将插入符号偏移量保存到数据库中,然后在加载texteditor

时将值设置回来。
this.ScrollToVerticalOffset(value1); //top offset of the editor (example line 120)
this.TextArea.Caret.Line = value2;  //value of the cursor line