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
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
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
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...
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