2010-07-18 64 views
8

我被要求研究一下應用程序,這個應用程序將是一個非常大的應用程序,在很高的分辨率下(顯然)擴展到9個屏幕。在WPF中,你如何爲多個屏幕編寫應用程序?

我的問題是,這樣做最好的方法是什麼?

我只是寫一個應用程序是(1024x3)x(768x3)?我可以在開發時如何做到這一點?我將無法看到應用程序在運行,或者我可以使用RenderTransform進行開發,將縮放比例降低到1024x768,並在部署時除去該變換?

該系統的性能如何?我們將擁有一臺功能強大的個人電腦,並帶有一個優秀的圖形卡,但WPF能夠應付這種規模的應用程序嗎?

+0

是否有9(或更多)單獨的窗體/窗口或一個或兩個窗體/窗口需要以非常高的分辨率顯示? – ChrisF 2010-07-18 12:26:32

+0

我們將9個屏幕基本上視爲一個屏幕,如果這是有意義的... – Mark 2010-07-18 12:29:16

+0

不是真的;)它是9個獨立的窗口 - 每個屏幕一個。在這種情況下,您可以將每個應用程序視爲一個單獨的「全屏」應用程序。 – ChrisF 2010-07-18 13:55:44

回答

1

兩年前我寫過這樣一個應用程序(它比應用程序更加黑客,但客戶對此感到滿意)。

我用於每個屏幕的一個窗口,並有一個配置,將窗口映射到屏幕(在我的環境中,並非所有顯示器都具有相同的分辨率)。我也使用縮放,以便我可以將所有窗口放在一個屏幕上(在我的開發機器上)。

正如我記得我們有大約五六臺PC和超過20個屏幕。一些電腦配備了NVidia Quad顯卡,其他電腦只配備兩臺顯示器。

我記得的是,這款顯卡的的性能很差。包含很好的視覺效果是不可能的。在我的項目中,這不是一個大問題,因此我深入研究了它如此緩慢的原因。也許這只是一個配置問題。但請務必在投入大量時間進行開發之前對這種多顯示器PC進行一些測試,以後再評論該應用程序由於其視覺緩慢而無法使用。

如果您的應用程序將有很多視覺上的變化,你想看到他們在一個可以接受的幀率,這裏的一些思緒之中:

  • 檢查顯卡支持 hw-rendering 每個屏幕。如果不是,則9個屏幕的填充率爲 將是巨大的,並且 的性能將下降。
  • 對於您的項目,一般要當心 DropShadowEffect等效果。 他們可以影響 髒區域的計算方式,整個篩選或大區域將 重新繪製。使用perforator 可以確保沒有不必要的 圖紙會發生。這將是致命的 。
  • 如果你可以將大屏幕分割成小屏幕,我建議(每個顯示器一個窗口)。這 給你更多的靈活性,如果你 encouter問題。如果 某些區域的渲染是獨立於其他區域的, 請考慮使用5個便宜的pc,使 成爲主控,並通過WCF將它們連接 。每臺電腦兩臺 顯示器。

刪除後

後恢復刪除我未刪除我的答案,因爲你提出的要求。但有50多個觀點,並沒有一個人贊成,似乎我的恐懼是沒有道理的。正如我寫的,我們的項目中有更高的篩選決議。只有1024 * 768和兩年後,性能可能不再是一個問題。但我會保重。

+0

希望WPF在兩年內在性能方面有了顯着提升。我好奇,你在哪裏使用WPF?看起來奇怪的是,這種強大的卡片無法應付,但也許你正在使用渲染在CPU而不是GPU上的效果? – Mark 2010-07-18 12:31:09

+0

我不認爲在這個狹窄的兩年裏,會有如此大幅度的表現增長。如果你的應用只顯示靜態數據,你不會有問題。如果不是,請注意視覺表現。對於一些想法,請參閱我的帖子的更新。對於特效:我沒有使用任何BitmapEffects,也沒有其他影響渲染的效果。該應用程序的主要內容是顯示圖像。決議有一個很大的區別。據我所知,大多數顯示器的運行速度都是1680 * 1050,與1024 * 768相比,它的填充率高出一倍以上。 – HCL 2010-07-18 22:28:58

+0

這個想法是,該應用程序是一個巨大的應用程序運行在一個巨大的顯示器上,類似於你在商店裏看到的那些日子,他們堆放了連接起來播放視頻和促銷資料的東西,而不是9個不同的應用程序並排運行無論如何是這個想法),我熟悉性能工具和技巧,但我想我真正在尋找的是,這是否會成爲明智的表現? (但我知道,當然這取決於你做什麼)。 – Mark 2010-07-18 22:55:53

1

採取Windows.Forms的

對於WPF使用SystemParameters.VirtualScreenHeight和SystemParameters.VirtualScreenWidth看看 SystemInformation.VirualScreen 。 不知道WPF如何應對,至少你會知道這個決議。

+0

http://mostlytech.blogspot。com/2008/01 /最大化-wpf-window-to-second-monitor.html看看這裏 – nomail 2010-07-19 10:15:27

+0

謝謝nomail,但不是真的我以後... – Mark 2010-07-19 22:40:45

+0

嗨,馬克!你會用9個顯示器(我甚至不想知道他們花了多少錢)一個視頻卡?從我在一個實驗室看到的,他們使用3臺PC(總共6臺顯示器)。每個幀在這些PC之間分配,並根據LiveWall上的區域進行計算。如果你不介意我問,你的系統如何工作?因爲我可能不得不在近期內做類似的事情,任何提示將不勝感激。謝謝! – nomail 2010-07-20 07:40:20

相關問題