Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
画布中的WPF UI虚拟化_Wpf_Performance_Canvas_Virtualization_Ui Virtualization - Fatal编程技术网

画布中的WPF UI虚拟化

画布中的WPF UI虚拟化,wpf,performance,canvas,virtualization,ui-virtualization,Wpf,Performance,Canvas,Virtualization,Ui Virtualization,在我的应用程序中,我有一个大画布,上面有很多项目。它是矩形和自定义用户控件的混合体。项目在codebehind中动态添加,UI看起来有点像这样: 当我加载超过100个项目时,它开始运行缓慢,感觉UI虚拟化就是其中的一种方式 我读到了博客文章中提到的虚拟画布,并正在考虑试用它。但由于这是8年前写的,我不确定这是正确的方法,还是有人知道更好的解决方案。我应该用画布以外的东西吗?我记得很久以前我也在研究同一个话题。我记得我收集了一些类似于虚拟化Canvas的作品的链接。如果您搜索Virtualzin

在我的应用程序中,我有一个大画布,上面有很多项目。它是矩形和自定义用户控件的混合体。项目在codebehind中动态添加,UI看起来有点像这样:

当我加载超过100个项目时,它开始运行缓慢,感觉UI虚拟化就是其中的一种方式


我读到了博客文章中提到的虚拟画布,并正在考虑试用它。但由于这是8年前写的,我不确定这是正确的方法,还是有人知道更好的解决方案。我应该用画布以外的东西吗?

我记得很久以前我也在研究同一个话题。我记得我收集了一些类似于虚拟化Canvas的作品的链接。如果您搜索VirtualzingCanvas,您应该能够找到2到3种不同的实现。我不记得哪一个是最好的。另外,它可以处理2D(而不仅仅是1D)中缩放和滚动操作的虚拟化,我相信它是建立在原始VirtCanvas作品的基础上的。如果我找到我的笔记,我会在这里粘贴链接,但是。。机会也很低,我只是偶然发现:除了解释之外,还有一个“下载源代码”,上面说你可以免费使用它。他们使用近似滚动的方法似乎很有趣。最后,你可能会发现一本有趣的读物。只需100项,速度就会减慢。。糟糕。你应该很容易就能接触到更多。您的项目布局可能存在一些问题。太复杂(意思是:嵌套控件太多)或非连续项高度迫使WPF过于频繁地重新计算?你可能想看到关于各种主题的一些提示,尽管我没有全部阅读,但它似乎涵盖了让它工作的许多重要部分。