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

时间:2010-07-18 11:16:01

标签: wpf user-interface .net-4.0

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

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

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

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

2 个答案:

答案 0 :(得分:1)

两年前我写过这样一个应用程序(它比应用程序更糟糕,但客户对此感到满意)。

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

我记得我们有大约五六台电脑和20多个屏幕。有些PC有NVidia Quad-graphics卡,有些只有两台显示器。

我记得的是,四核显卡的性能很差。不可能包含漂亮的视觉效果。在我的项目中,这不是一个大问题,因此我没有深入研究它为什么如此缓慢的原因。也许这只是一个配置问题。但是确保在投入大量时间进行开发之前在这样的多显示器PC上进行一些测试,然后再说明该应用因其视觉缓慢而无法使用。

如果您的应用会有很多视觉变化,并且您希望以可接受的帧率看到它们,那么这里有一些:

  • 检查显卡是否支持 HW-渲染 对于每个屏幕。如果没有,填写 9个屏幕的速度将是巨大的和 性能会下降。
  • 对于您的项目,一般要小心 DropShadowEffect等效果。 它们会影响计算 肮脏的地区以某种方式 整个屏幕或大区域将是 粉刷一新。使用穿孔器 使shure没有必要 图纸将会发生。这将是 。致命
  • 如果你可以拆分大屏幕 较小的,我建议(每个显示器一个窗口)。这个 如果你有更多的灵活性 包围问题。如果渲染 有些地区独立于其他地区, 考虑使用5便宜的PC,制作 一个主人并连接他们 通过WCF。每台电脑两台渲染 显示器。

删除帖子后取消删除

我取消了我的回答,因为你要求了。但是有超过50个观点而不是一个观点,似乎我的恐惧是不合理的。正如我写的那样,我的项目中有更高的分辨率。只有1024 * 768和两年后,性能可能不再是一个问题。但我会照顾。

答案 1 :(得分:1)

看一看      SystemInformation.VirualScreen 在Windows.Forms中

对于WPF,请使用SystemParameters.VirtualScreenHeight和SystemParameters.VirtualScreenWidth。 不确定WPF如何应对,至少你会知道决议。