寻找一个免费的拼写检查解决方案,我以为我这么做很聪明,但我猜不是。WPF用户控件导致内存不足异常
我已经创建了一个基于Windows窗体的应用程序,我希望表单可以将用户指定量的用户控件(带有文本框)添加到面板上。然后用户可以点击某个按钮并清除此面板上的控件并添加新的控件。用户做了一些事情,并重复这个过程。现在,我希望这些文本框支持拼写检查,并且为了免费的解决方案而遍布各地。
WPF文本框支持拼写检查,常规win表单中的那些文本框没有。我想我可以将这些WPF文本框添加到一个ElementHost对象中,而这个对象又是一个面板。这个面板将是一个用户控件。
因此,在我的应用程序中,我将能够将这些用户控件的实例添加到窗体上,并利用.NET的拼写检查善良性。这实际上工作,但使用了一段时间的应用程序后,发现应用程序将最终冻结在我身上,由于内存不足的错误。我已经指出了这些WPF控件的内存错误,因为这个问题不会发生在普通的文本框中。
当打开窗口,并指定控件的数量,这是相当多的控件如何补充说:
Dim xOffset As Integer = 0
For i As Integer = 0 To theNumber
Dim myUserControl As New SpecialUserControl()
myPanel.Controls.Add(myUserControl)
myUserControl.Location = New Point(7, 7)
myUserControl.Location = New Point(xOffset, 7)
xOffset = xOffset + 207
Next
需要注意的是:
- myPanel是面板的形式
- SpecialUserControl是带WPF文本框的用户控件(在ElementHost对象内)
当用户按下按钮时,面板被清除:然后
myUserControl.Controls.Clear()
用户可以重复该过程。
当我试图找到一个解决方案时,在互联网上有很多结果,我认为我遇到的问题是由于WPF控件即使在清除面板后仍未消失。根据这个结论,我尝试了不同的解决方案来处理这些控件,或者将它们设置为无,但内存问题一直在发生。如果有人能够在这里给我一些建议或想法,我会非常感激。