在WPF中,您如何为多个屏幕编写应用程序?

Mar*_*ark 8 wpf user-interface .net-4.0

我被要求考虑编写一个应用程序,它将是一个非常大的应用程序,在(显然)非常高的分辨率上扩展超过9个屏幕.

我的问题是,这样做的最佳方法是什么?

我只是编写一个(1024x3)x(768x3)的应用程序吗?我怎么能在开发时那样做呢?我将无法看到应用程序正在运行,或者我可以使用RenderTransform该规模开发回到1024x768并在部署时删除该转换?

系统的性能如何?我们将拥有一台功能非常强大的PC,拥有出色的显卡,但是WPF能够应对这种大小的应用吗?

HCL*_*HCL 1

我两年前编写了这样一个应用程序(与其说它是一个应用程序,不如说它是一个黑客,但客户对此很满意)。

我为每个屏幕使用一个窗口,并有一个将窗口映射到屏幕的配置(在我的环境中,并非所有显示器都具有相同的分辨率)。我还使用了缩放功能,以便可以将所有窗口放置在一个屏幕上(在我的开发机器上)。

我记得我们大约有五六台电脑和 20 多个屏幕。一些电脑配备了 NVidia Quad 显卡,其他电脑仅配备两个显示器。

我记得的是,四显卡的性能很少。不可能包含良好的视觉效果。在我的项目中,这不是一个大问题,因此我没有深入研究它如此缓慢的原因。也许这只是一个配置问题。但在投入大量时间进行开发之前,请务必在这样的多显示器 PC 上进行一些测试,然后再指出该应用程序由于视觉缓慢而无法使用。

如果您的应用程序将有很多视觉变化,并且您希望以可接受的帧速率看到它们,请考虑以下一些想法:

  • 检查显卡是否支持 每个屏幕的硬件渲染。否则,9 个屏幕的填充率将会很大,性能也会下降。
  • 对于您的项目,通常要注意 DropShadowEffect 等效果。它们可以影响脏区域的计算,从而重新绘制整个屏幕或大区域。使用穿孔器 确保不会发生不必要的绘图。这将是致命的。
  • 如果您可以将大屏幕拆分为小屏幕,我建议您(每个显示器一个窗口)。如果您遇到问题,这将为您提供更大的灵活性。如果某些区域的渲染独立于其他区域,请考虑使用 5 台廉价电脑,将其中一台作为主控并通过 WCF 连接它们。每台电脑渲染两个显示器。

删除帖子后恢复删除

因为你的要求,我取消了我的答案。但有超过 50 个观点,却没有一个人点赞,看来我的担心是没有道理的。正如我所写,我们的项目中的屏幕分辨率要高得多。两年后,只有 1024*768,性能可能不再是问题。但我会照顾的。