Innerhalb einer WinForms-Anwendung ist der beste Weg, um die Größenänderung von Steuerelementen entsprechend der Bildschirmauflösung und das Maximieren und Ändern der Fenstergröße zu handhaben. Ich habe 3 Spalten, die so eingestellt sind. LABEL TEXTBOX in jeder Spalte. Das könnte man als 6 Spalten zählen. Ich habe versucht, das Ankeren nach rechts, aber das Problem dabei ist, dass die Textbox in Spalte 1 die nächsten 2 Spalten überlappt. Ich habe auch versucht, das Andocken, aber das scheint nicht zu funktionieren. Gibt es eine einfache Möglichkeit, dies zu tun?
Antworten
Zu viele Anzeigen?TL;DR: Du kannst dies nicht ohne manuelles Codieren von Größenänderungslogik tun. Als kleine Anmerkung, du solltest wahrscheinlich nicht versuchen, dies zu tun.
In der herkömmlichen WinForms gibt es meines Wissens nach keinen automatischen Weg, ohne eine eigene Lösung zu entwickeln. Sean87 hat das AutoScaleMode
-Attribut vorgeschlagen, aber auch wenn es dann automatisch ist, unterstützt es keine automatische Größenanpassung nach Auflösung. Es bietet eine Option zur Skalierung basierend auf den Schriftgrößeneinstellungen in Windows oder der DPI-Einstellung. Weder die wird direkt geändert, wenn man einfach die Bildschirmauflösung ändert und ehrlich gesagt ändern die meisten typischen Benutzer (und wahrscheinlich auch Power-Benutzer) wahrscheinlich nie die DPI- oder Schriftgröße-Einstellungen.
Abgesehen davon ist der eigentliche Zweck aus Sicht eines einfachen Benutzers, die Bildschirmauflösung zu erhöhen, um mehr virtuellen Desktop-"Platz" für die Anordnung von Anwendungsfenstern zu erhalten. Zwar sind die meisten Monitore heute auf LCD-Basis und haben daher Nativauflösungen, die das Ändern dieser Einstellung größtenteils zur Vergangenheit der Röhrenmonitore machen. Dennoch würde der Kauf eines neuen, größeren Monitors einem typischen Benutzer ermöglichen, diesen virtuellen Bildschirmplatz zu vergrößern, um mehr Fenster gleichzeitig anzuzeigen. Eine Anwendung, die immer die gleiche relative Größe zur Bildschirmauflösung beibehält, wäre meiner Meinung nach recht ungewöhnlich und würde den Erwartungen der meisten Benutzer entgegenstehen, einschließlich selbst fortgeschrittener Entwicklerbenutzer.
In der Regel solltest du deine Anwendung intelligent und nützlich anpassen, wenn das Fenster in der Größe geändert wird, aber im Allgemeinen überlässt du dies dem Benutzer, da es sich um seinen Computer und seine Vorlieben handelt (denke daran als das Prinzip "mein Haus, meine Regeln"). Das ist auch der Grund, warum die meisten (alle?) Anwendungen Fensterpositionen nicht ändern, es sei denn, sie werden direkt vom Benutzer manipuliert (durch Ziehen des Fensterrahmens und ähnliches). Tatsächlich erklärt dies wahrscheinlich auch, warum Microsoft sich dagegen entschieden hat, eine automatische Größenregelung basierend auf der Auflösung einzuschließen.