WPF性能派生TextBox控件的问题

时间:2011-07-14 10:39:41

标签: wpf wpf-controls profiling

我有一个WPF应用程序,它根据保存在数据库中的表单配置呈现输入表单。

表单有许多控件(100+),并且大多数控件都是从TextBox控件派生的。在一些机器上(快速硬件,Win7 32Bit,也有一些老年人,Windows XP 32Bit),在输入大量这些形式的数据后,输入性能下降。每次击键都会延迟几毫秒,解决此问题的唯一方法是关闭应用程序并重新启动它。

我的派生控件会覆盖DefaultStyleKeyProperty的元数据以设置自定义模板。

我目前正在重新研究SciTech内存分析器中的应用程序,但也许有人已经遇到类似的衍生TextBox问题,可以给我一个提示并让我多花几个小时/天来调查这个问题?

更新
另请看here

2 个答案:

答案 0 :(得分:1)

听起来你可能有一些东西停止了“使用过的表格”被控制的控件。

首先打开并使用尽可能多的表单,查看Windows任务管理器,看看你的内存使用情况是否正在上升 - 如果不是,那就没有必要寻找内存韭菜

检查您是否删除了表单/控件放置在任何长寿命对象上的所有事件处理程序。

检查您为数据绑定实现INotifyPropertyChanged的任何对象,请参阅KB938416

我过去使用Red Gate memory profiler获得了良好的效果。

答案 1 :(得分:0)

您无需创建用户无法看到的控件,100多个控件将有成本。

您是否可以在虚拟模式下使用列表控件列表控件,因此只有在可见时才会创建TextBox控件。