【问题标题】:Compact Framework - Lightweight GUI Framework? [closed]Compact Framework - 轻量级 GUI 框架? [关闭]
【发布时间】:2008-08-28 19:47:24
【问题描述】:

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

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

我所说的轻量级是指一个控件库,它使人们能够完全控制控件的绘制并且不使用许多昂贵的窗口句柄。

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

【问题讨论】:

  • 有点晚想要关闭这个,嗯?

标签: compact-framework gdi+ windows-ce


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    好吧,我只是想到了一个想法......

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

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

    【讨论】:

      【解决方案3】:

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

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

      执行

      【讨论】:

        【解决方案4】:

        其实你可以覆盖paint事件。

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

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

        【讨论】:

          猜你喜欢
          • 2016-06-01
          • 2011-05-19
          • 1970-01-01
          • 1970-01-01
          • 2010-10-06
          • 1970-01-01
          • 2010-09-09
          • 2012-05-15
          • 2011-09-09
          相关资源
          最近更新 更多