In WPF schreiben Sie eine Anwendung für mehrere Bildschirme?

8

Ich wurde gebeten, mich damit zu beschäftigen, eine Anwendung zu schreiben, die eine sehr sehr große Anwendung sein wird, die sich über 9 Bildschirme mit einer (offensichtlich) sehr hohen Auflösung ausdehnt.

Meine Frage ist, was ist der beste Weg, dies zu tun?

Schreibe ich einfach eine Anwendung, die (1024x3) x (768x3) ist? Wie um alles in der Welt kann ich das zur Entwicklungszeit tun? Ich kann die laufende Anwendung nicht sehen, oder vielleicht kann ich mit einer RenderTransform entwickeln, dass die Skalierung wieder auf 1024x768 heruntergesetzt ist, und diese Transformation zum Zeitpunkt der Bereitstellung entfernen?

Was ist mit der Leistung des Systems? Wir werden einen sehr leistungsfähigen PC haben, der alles mit einer großartigen Grafikkarte versorgt, aber wird WPF in der Lage sein, mit dieser großen Anwendung fertig zu werden, OK?

    
Mark 18.07.2010, 11:16
quelle

2 Antworten

1

Ich habe vor zwei Jahren eine solche App geschrieben (es war mehr ein Hack als eine App, aber der Kunde war damit zufrieden).

Ich habe für jeden Bildschirm ein Fenster verwendet und hatte eine Konfiguration, die die Fenster den Bildschirmen zuordnete (in meiner Umgebung hatten nicht alle Bildschirme die gleichen Auflösungen). Ich habe auch skaliert, so dass ich alle Fenster auf einem Bildschirm (auf meinem Rechner) platzieren konnte.

Wie ich mich erinnere, hatten wir ungefähr fünf oder sechs PCs und etwas mehr als 20 Bildschirme. Einige der PCs hatten NVidia Quad-Grafikkarten, andere nur zwei Monitore.

Woran ich mich erinnere ist, dass die Leistung der Quad-Grafikkarten sehr gering war . Es war nicht möglich, schöne visuelle Effekte einzubauen. In meinem Projekt war dies kein großes Problem und deshalb habe ich nicht tiefer in die Gründe geforscht, warum es so langsam war. Vielleicht war es nur ein Konfigurationsproblem. Aber stellen Sie sicher, einige Tests auf einem solchen Multi-Monitor-PC zu machen, bevor Sie viel Zeit für die Entwicklung investieren, um später zu bemerken, dass diese App wegen ihrer visuellen Langsamkeit nicht verwendbar ist.

Wenn Ihre App viele visuelle Änderungen aufweist und Sie sie in einer akzeptablen Framerate sehen möchten, hier ein paar Hinweise:

  • Überprüfen Sie, ob die Grafikkarte unterstützt hw-rendering für jeden Bildschirm. Wenn nicht, die Füllung Rate für 9 Bildschirme wäre riesig und die Leistung wird sinken.
  • Achten Sie bei Ihrem Projekt in der Regel auf Effekte wie DropShadowEffect. Sie können die Berechnung von beeinflussen die schmutzigen Regionen in einer Weise, dass die ganze screenen oder große regionen werden sein neu gestrichen. Verwenden Sie Perforator um sicherzustellen, dass nicht unnötig Zeichnungen werden passieren. Das wäre fatal.
  • Wenn Sie den großen Bildschirm auf teilen können kleinere, würde ich empfehlen (ein Fenster pro Monitor). Dies gibt Ihnen mehr Flexibilität, wenn Sie Probleme lösen. Wenn das Rendern von einige Bereiche sind unabhängig von anderen, über die Verwendung von 5 billigen PCs denken, machen einer der Meister und verbinden Sie sie durch WCF. Render pro PC zwei Monitore.

Nach dem Löschen des Posts wiederherstellen

Ich habe meine Antwort gelöscht, weil du darum gebeten hast. Aber mit über 50 Ansichten und nicht einer Aufzählung scheint es, dass meine Angst nicht gerechtfertigt ist. Und als ich schrieb, hatten wir eine viel höhere Auflösung in meinem Projekt. Mit nur 1024 * 768 und zwei Jahre später ist die Performance vielleicht kein Thema mehr. Aber ich würde aufpassen.

    
HCL 18.07.2010, 11:48
quelle
1

Sieh dir das an      SystemInformation.VirualScreen in Windows.Forms

Verwenden Sie für WPF SystemParameters.VirtualScreenHeight und SystemParameters.VirtualScreenWidth. Nicht sicher, wie WPF damit umgeht, zumindest kennen Sie die Auflösung.

    
nomail 19.07.2010 10:12
quelle

Tags und Links