我已经为WPF Richtextbox实现了一个Find命令。我有两个Richtextboxes实例。第一个是可写的。第二个不是。在只读的richtextbox中,
IsDocumentEnabled = true且IsReadOnly = true。
两个richtextbox都有相同的文字,大约1000个字符。
在第一个richtextbox中搜索字符串需要18秒。在readonly中,使用完全相同的文本和完全相同的代码,搜索需要4秒。认为它可能是被添加到Undo堆栈中的项目,我在第一个中禁用了Undo以查看它是否会提高性能但是它没有。
有没有人有建议或想法为什么读写richtextbox和readonly richtextbox之间的性能有如此大的差异?
答案 0 :(得分:0)
您报告的结果非常符合逻辑:由于重大的程序开销,ReadOnly=true
RichTextBox
上的搜索(查找)操作预计会比可写(ReadOnly=false
)控制快得多添加到可写控件。除了“撤销”功能外,它还可能需要处理并发管理,更改事件处理等问题。关于性能改进:将ReadOnly=true
设置为默认值,并“解锁”RichTextBox控件(设置ReadOnly = false,或类似:rtf.ReadOnly= (bool)chkBoxLock.IsChecked
)仅在需要时。
RGDS,