VisualBasic Form mit Inhalt auf Vollbild skalieren

Creeed

Captain
Registriert
Sep. 2002
Beiträge
3.878
Hallo Leute, folgendes Problem. Ich schreibe an einem Programm das hier auf verschiedenen Rechner vorgeführt werden soll, leider haben diese Rechner verschiedene Monitore und Beamer. Da die Form bildschirmfüllend angezeigt wird meine eigentliche Form in der Mitte des Bildes angezeigt und darum ist ein, je nachdem wo wir es anzeigen, mehr oder minder Rand in dem nichts ist. Die Auflösung der Bildschirme ändern ist keine Option aus betrieblichen Gründen.

Gibt es eine Möglichkeit den Inhalt der Form so zu skalieren das er sich der Bildschirmgröße anpasst?

Entwicklungsumgebung: Visual Studio 2008
 
Aus welchem Grund willst du die Form skalieren lassen?

Reicht es nicht, dass die Aufteilung des zur Verfügung stehenden Raums sinnvoll an die Größe anpasst wird? Das ist ja relativ leicht über Anker (Anchor) und Docks zu bewerkstelligen.
 
Das Problem ist das die Form von 800*600 bis 1280*1024 und mehr möglichst gleich aussehen soll. Das mit Dock und Anchor hab ich schon versucht. Ab einer gewissen Höhe der Auflösung wird die Schrift unleserlich, Schriftgrad erhöhen geht aber nicht.

Eigentlich muss nur ein Panel mit Inhalt "mitwachsen", der Rest ist irrelevant.
 
Das ist ein Grundsätzliches Problem. Die Standardlösung ist stets über Docks und Anchors. In vielen Fällen helfen auch Steuerelemente wie TableLayoutPanel und SplitPanel.

Aber was du ansprichst ist zum Beispiel auch Schrift und da wird es sehr schwierig. Man wird es nicht hinbekommen, dass das Programm auf allen Anzeigegeräten gleich aussieht. Selbst wenn man die Farbverfälschungen ausklammert haben verschiedene Monitore verschiedenen Pixeldichten. Ein 22"-Monitor gibt es mit nativen Auflösungen 1680x1050 Pixel aber auch mit 1920x1080. Jeder Pixel ist also verschieden groß.

Die einzige Bezugsgröße ist immer die Auflösung, aber auch hier ist es schwierig. Wenn man konsequent wäre, müsste man die Größe aller Steuerelemente stets so berechnen, dass sie denselben relativen Raum einnehmen. Also z.b. 5% der Breite eines Bildschirms und 3% seiner Höhe. aber es kann dir niemand garantieren, dass ein Text z.b. darauf dann noch lesbar ist, oder eventuell abgeschnitten wird. Darüber hinaus hängt die Schriftgröße auch von den Einstellungen des Bestriebssystems ab. Man kann z.b. die Größe der Titelleiste und die des Textes darin variieren, dann würde dieses relative System schon wieder nicht funktionieren.

Was bleibt sind die oben genannten Werkzeuge Anchor, Docking und die genannten Steuerelemente.

Was natürlich möglich wäre ist für die verschiedenen Auflösungen verschiedene Formvorlagen zu nutzen - diese musst du dann manuell erstellen.

Oder noch ein Hinweis: WPF, also Windows Presentation Foundation bietet hier mehr unterstützung als Windows Forms. Damit kenn ich mich aber nicht aus
 
Um mal einen Hinweis zu geben... wenn du nur darstellende Elemente hast (ListBox, TextBox [nur breite; höhe wenn mehrzeilig]) dann kannst du diese zum Platz auffüllen nehmen. ;)

Aber da kann man schon recht viel mit Anchor und Docking erreichen... bzw. kleine Änderungen per Code beim Form resize.

Ja, WPF ist da geschmeidiger. ;)
 

Ähnliche Themen

Zurück
Oben