读写时,WPF Richtextbox搜索速度要慢得多

读写时,WPF Richtextbox搜索速度要慢得多,wpf,richtextbox,Wpf,Richtextbox,我已经为WPF Richtextbox实现了一个Find命令。我有两个RichTextBox的实例。第一个是可写的。第二个不是。在只读richtextbox中, IsDocumentEnabled=true和IsReadOnly=true 两个RichTextBox具有相同的文本,大约1000个字符 在第一个richtextbox中搜索字符串需要18秒。在readonly one中,使用完全相同的文本和代码,搜索需要4秒钟。我认为这可能是添加到撤消堆栈中的项,所以在第一个堆栈中禁用了撤消,以查看

我已经为WPF Richtextbox实现了一个Find命令。我有两个RichTextBox的实例。第一个是可写的。第二个不是。在只读richtextbox中,
IsDocumentEnabled=true和IsReadOnly=true

两个RichTextBox具有相同的文本,大约1000个字符

在第一个richtextbox中搜索字符串需要18秒。在readonly one中,使用完全相同的文本和代码,搜索需要4秒钟。我认为这可能是添加到撤消堆栈中的项,所以在第一个堆栈中禁用了撤消,以查看它是否会提高性能,但实际上并没有


有人对为什么读写richtextbox和只读richtextbox在性能上存在如此大的差异有什么建议或想法吗?

您报告的结果完全符合逻辑:在
readonly=true
richtextbox
上的搜索(查找)操作预计要比在可写上快得多(
ReadOnly=false
)控件,这是由于可写控件增加了大量编程开销。除了“撤消”功能外,它还可能处理并发管理、更改事件处理等方面的需要。关于性能改进:将
ReadOnly=true
设置为默认值和“解锁”“RichTextBox控件(设置ReadOnly=false,或类似于:
rtf.ReadOnly=(bool)chkBoxLock.IsChecked
)仅在需要时进行。 Rgds