Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wieso hat FormWindowState.Maximized mehr Pixel als mein Monitor?
fantinger
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

Wieso hat FormWindowState.Maximized mehr Pixel als mein Monitor?

beantworten | zitieren | melden

Hallo,

mein Monitor hat eine Auflösung von 2560x1440 Pixeln.
Wenn ich nun eine Form erstelle und FomWindowState auf Maximized setze, so ist die Size des Forms mit 2578x1458 Pixeln jeweils in Breite und Höhe 18 Pixel größer als die Monitorauflösung. Wieso ist das so und gibt es für die Größenabweichung eine Regel?
Wenn ich nun zusätzlich FormBorderStyle auf None setze, so wächst das ClientRectangle auf die Breite und Höhe der Size des Forms und es werden am Rand einige Pixel abgeschnitten. Seltsamerweise ist auch das DisplayRectangle nun so groß, wie die Size der Form (2578x1458) - ich dachte immer, dass das DisplayRectangle nur den sichtbaren Clientbereich darstellt - also maximal 2560x1440 Pixel.

Gibt es eine brauchbare Möglichkeit dieses Verhalten (abgeschnittene Randpixel) zu unterbinden?


viele Grüße

Christian
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1053

beantworten | zitieren | melden

Moin,

also woher die zusätzlichen Pixel kommen kann ich dir nicht sagen. Bei einer Auflösung von 1920x1080 ist die Size 1936x1096.

Was ich sagen kann:
Das Verhalten bei FormBorderStyle.None kann ich nicht nachvollziehen, es werden keine Pixel abgeschnitten und die Size, ClientRectangle und DisplayRectangle beträgt 1920x1080.

Das ClientRectangle und das DisplayRectangle unterscheiden sich, wenn du ein scrollbares Control hast. Siehe hier: Control.ClientRectangle vs Control.DisplayRectangle
private Nachricht | Beiträge des Benutzers
fantinger
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Hallo,

das ist eine schon etwas ältere MDI-Anwendung.
Wenn ich bei FormBorderStyle.None und FomWindowState.Maximized die Size nun explizit auf die Grafikauflösung setzte geht das. Für meinen Zweck sollte das erst einmal ausreichen - wenngleich solche Merkwürdigkeiten dann doch irgendwann einmal regelmäßig Ärger machen.

viele Grüße

Christian
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1053

beantworten | zitieren | melden

Wie gesagt, dieses Verhalten kann ich prinzipiell nicht nachvollziehen.

Ein Fenster mit FormBorderStyle.None und FomWindowState.Maximized hat bei mir die erwartete Größe.
Ein Fenster mit FormBorderStyle.Sizable und FomWindowState.Maximized ist in der Size zu groß, wenn es dann allerdings nicht mehr maximiert ist und man es auf die Size von 1920x1080 setzt, dann nimmt es auch tatsächlich nicht den ganzen Bildschirm ein...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von p!lle am .
private Nachricht | Beiträge des Benutzers
Spook
myCSharp.de - Member



Dabei seit:
Beiträge: 233
Herkunft: Esslingen a.N.

beantworten | zitieren | melden

Hallo,

ich habe die Vermutung, dass der Schatten des Fensters bei der Berechnung der Größe mitgezählt wird, da dieser bei FormBorderStyles.None nicht gerendert wird und hier das Fenster die erwartete Größe hat.

Grüße
private Nachricht | Beiträge des Benutzers