Ich versuche, die Größe meines primären Bildschirms zu bestimmen, damit ich sein Bild erfassen kann. Mein Setup ist ein Laptop mit einem 1600x900 Display und einem externen Monitor mit 1920x1080. Der Code, der die Größe erreicht, läuft unter Windows gut, liefert aber unter Ubuntu (mit MonoDevelop) das falsche Ergebnis.C# und Ubuntu - Wie bekomme ich die Größe des primären Bildschirms?
Rectangle capture_rect = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
Console.WriteLine("width={0} height={1}", capture_rect.Height, capture_rect.Width);
Das Ergebnis auf Ubuntu ist "width = 3520 height = 1080". Wenn ich den externen Monitor abziehe, bekomme ich das korrekte Ergebnis, nämlich "width = 1600 height = 900". Irgendeine Idee warum ich bei Ubuntu mit mehreren Displays den falschen Wert bekomme?
Offenbar denkt Ubuntu, dass Ihr externer Monitor der primäre Bildschirm ist. Haben Sie sich die Bildschirmeigenschaften von Ubuntu angesehen, um zu bestätigen, dass sie wie erwartet konfiguriert sind (der externe Monitor ist nicht der primäre Bildschirm)? – varocarbas
Der Rückgabewert 3520x1080 ist ein Rechteck, das die Größe beider Anzeigen umfasst. Wenn ich zu Systemeinstellungen> Anzeigen gehe, sagt es nichts über primäre oder sekundäre Anzeige, aber meine "Launcher-Platzierung" ist für meine Laptop-Anzeige eingestellt. Gibt es woanders sollte ich nach Bildschirmeigenschaften suchen? – Ravi
Leider bin ich nicht so erfahren in Mono/Ubuntu und habe jetzt keinen Ubuntu Computer bei mir; Dies war nur ein allgemeiner Vorschlag (d. h. das wahrscheinlichste Problem ist, dass PrimaryScreen.Bounds tatsächlich richtig berechnet wird, aber auf einen anderen Bildschirm zeigt). In Ihrer Situation würde ich einige Tests mit allen von der Screen-Klasse erkannten Bildschirmen durchführen, um zu sehen, wie sie gespeichert/erkannt werden; würde auch etwas in den Ubuntu-Foren recherchieren. Entschuldigung, kann aber nicht weiter helfen. – varocarbas