紧凑框架-轻量级GUI框架?

时间:2020-03-05 18:44:38  来源:igfitidea点击:

CF上的Winform有点沉重,初始化许多Windows句柄会占用大量时间和内存。另一个问题是缺少内置的双缓冲以及对UI渲染的控制不足,这意味着在处理器密集型操作期间,UI可能会使用户盯着一半的渲染屏幕。好的!

为了缓解这个问题,我将寻求一个轻量级的控制框架,是否已经有人在踢,还是必须自制?

轻量级的意思是指一个控件库,该控件库可以完全控制控件的绘制,并且不使用许多昂贵的Windows句柄。

注意:请不要建议我在UI线程上运行过多。事实并非如此。

解决方案

回答

实际上,我们可以覆盖绘画事件。

想法是将长时间运行的操作卸载到单独的线程中。确实,这与其他任何事件驱动的框架都没有什么不同。任何依赖于处理Paint事件的东西都将容易受到影响。

另外,没有系统可以让我们确定何时引发绘画事件。此类事件通常由窗口管理器层引发,该层位于应用程序(甚至框架)之外。我们可以自己处理此事件,有时不做任何工作,但我不建议这样做。

回答

a bit slow and you can't control the paint event so during processor intensive operations the UI might leave the user staring at a half rendered screen.

在UI线程上执行昂贵的任务通常不是一个好主意。为了保持用户界面的响应速度,这些任务应由工作线程执行

回答

好的,只是一个念头而已。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

如何创建一个同步对象,例如应用程序中的关键部分或者单个锁,在工作线程和gui线程之间共享。覆盖油漆。当我们开始绘画时,请阻塞所有其他线程,以免它们占用CPU时不会留下半画的画面。

(当然,这是假设向用户展示漂亮的图片是我们最重要的要求;))

回答

前几天,我碰到了这一点,至少作为一个起点,它可能会有所帮助:Fild Windows Mobile .NET Touch Controls。外观不错,但是没有设计时间支持。我对内存占用等信息不太了解,但是所有内容都经过双重缓冲,性能似乎还不错。