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

时间:2008-08-28 19:47:25

标签: compact-framework gdi+ windows-ce

CF上的Winform有点沉重,初始化许多Windows句柄需要花费大量时间和内存。另一个问题是缺乏内置的双缓冲和缺乏对UI渲染的控制意味着在处理器密集型操作期间,UI可能会让用户盯着一半渲染的屏幕。尼斯!

为了缓解这个问题,我会寻求一个轻量级的控制框架,是否有一个已经开始或者必须自制?

轻量级是指一个控件库,它可以完全控制控件的绘制,而不会使用许多昂贵的窗口句柄。

注意:请不要建议我在UI线程上运行太多。那是的情况。

4 个答案:

答案 0 :(得分:2)

我前几天遇到过这个问题,至少作为一个起点可能会有所帮助:Fuild - Windows Mobile .NET Touch Controls。外观和感觉很好,但没有设计时间支持。我不太了解内存占用等等,但是所有内容都是双缓冲的,性能似乎相当不错。

答案 1 :(得分:1)

好的,只是一个想法在我的头顶......

如何创建同步对象,例如应用程序中的关键部分或单个锁定,在您的worker和gui线程之间共享。覆盖油漆。当你开始绘画时,阻止所有其他线程,这样当你占用CPU时,你不会留下半画的画面。

(这当然假设向用户呈现漂亮的图片是您需要的最重要的事情;))

答案 2 :(得分:0)

实际上,您可以覆盖绘制事件。

这个想法是你将长时间运行的操作卸载到一个单独的线程。这与任何其他事件驱动的框架没有什么不同,真的。依赖于处理Paint事件的 Anything 将会受到影响。

此外,没有系统可以让您确定何时引发绘制事件。这种事件通常由窗口管理器层引发,窗口管理器层位于应用程序之外(甚至是框架)。你可以自己处理这个事件,但有些时候不做任何工作,但我不推荐它。

答案 3 :(得分:0)

  

有点慢并且您无法控制绘制事件,因此在处理器密集型操作期间,UI可能会让用户盯着半个渲染的屏幕。

在UI线程上执行昂贵的任务通常是个坏主意。为了保持您的UI响应,这些任务应该由worker thread

执行