Skalierung Bilder und Formen innerhalb einer Windows Form

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von MaxPlj.

    Skalierung Bilder und Formen innerhalb einer Windows Form

    Hallo zusammen,

    ich suche eine sehr simple Lösung. Wahrscheinlich auch schon öfter hier im Forum geschrieben, jedoch konnte ich mit meiner Suche nirgends etwas passendes finden.

    Ich habe auch bereits diverse Codes versucht, jedoch konnte bisher nichts mein einfachse Problem lösen.

    Ich habe mehrere Windows Forms, vereinfacht:
    Form 1, in welcher ich eine auswahl treffe, leitet mich weiter in Form 2, in welcher ich eine Visualisierung angezeigt bekomme.

    Innerhalb dieser Form 2 mit der Visualisierung sind viele Textboxen, Label und PictureBoxen vorhanden.

    Mein Problem ist nun, dass sobald ich die Applikation von einem anderen Rechner oder Bildschirm mit anderer Auflösung starte, nicht die gesamten formen angezeigt bekomme.

    Ebenfalls ist die Form "starr". Wenn ich das Fenster kleiner ziehen möchte verändern sich die Label, Button, Pictureboxen etc. nicht, sondern verschwinden nur.

    Ich benötige also eine Art responsives Design.

    Nun stelle ich mir die Frage, wie ich das lösen kann.

    Vorab möchte ich mich für die Antworten bedanken. :)
    @MaxPlj
    Mache in der app.config und im app.manifest folgende Einträge:

    XML-Quellcode

    1. App.config:
    2. <appSettings>
    3. <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    4. </appSettings>
    5. app.manifest:
    6. <asmv1:assembly manifestVersion="1.0" ... >
    7. <application xmlns="urn:schemas-microsoft-com:asm.v3">
    8. <windowsSettings>
    9. <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    10. </windowsSettings>
    11. </application>
    12. </asmv1:assembly>
    Falls diese Dateien (noch) nicht da sind, erstelle sie mit
    Projekt => Hinzufügen => Neues Element
    - Anwendungskonfigurationsdatei (App.config)
    - Anwendungsmanifestdatei (app.manifest)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich würd ja mal den Spekulatius essen, dass WPF dafür das Richtige wäre, aber das wissen die Experten wie @Nofear23m besser.
    In WinForms kannst Du mit Anchor und Dock arbeiten, um beim Ziehen des Forms Größenänderungen vorzunehmen. Ein Beispiel:
    Form mit einem Label (bei dem AutoSize = False). Standardmäßig ist der Anchor auf Top, Left eingestellt. D.h., die Position ändert sich nur relativ zur linken oberen Ecke des Containers, also des Forms. Stellst Du das um auf Bottom, Right, ist die Position relativ zur Ecke rechts unten. Und das bewirkt, dass das Label mit der Formgröße mitwandert. Werden jetzt aber gegenüberliegende Anchor gesetzt, gibt's ne Größenänderung: Anchor = Left, Top, Right => Form verstellen, dann bleibt die y-Koordinate des Labels erhalten, aber das Label variiert in der Breite. Dock ist nochmal ne andere Geschichte. Einfach mal probieren.
    ABER! Schriftgrößen ändern sich nicht!
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Ich denke, dass das eher ein Problem im System der eingestellten Schriftgröße ist, das hatte ich gerade auf Arbeit, und das war mit den beiden Einträgen gegessen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja @VaporiZed, das geht unter WPF wirklich einfacher, aber auch mit WInForms sollte das möglich sein. Man muss nur immer mit den richtigen Panels Arbeiten und evtl. dann noch per Code auf eine Größenänderung der Form eingehen. Unter WPF einfach aber unter WinForms nicht unschaffbar aber da bin ich nicht der Profi.

    Falls sich der TE für WPF entscheidet dann kann ich ja gerne helfen, aber denke ich eher nicht.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    hier, was Winforms dafür bereithält: Layout in Windows.Forms

    Es ist allerdings sehr geraten, nachdem du dich in die Layoutmöglichkeiten eingearbeitet hast, nochmal neu zu überdenken, wie die Oberfläche deines Proggis aussehen soll.
    Endlos viele Textboxen und Knöppe, und dann nicht sizeable - für mein Geschmack ist das ein Design, was man nirgends abliefern kann.

    Mein persönlicher Favorit ist das TabControl, weil man durch mehrere Tabs die verfügbare Arbeitsfläche vervielfachen kann.
    Ausserdem kann man Funktionalität des Programms in verschiedenen Tabs strukturieren.

    Wie gesagt: Instrumentarium ist reichlich da, und von guter Qualität, nur wie es einsetzen, dass was stimmiges bei rauskommt - da muss man selbst Prioritäten setzen und evtl. Kompromisse machen.

    MaxPlj schrieb:

    Ich werde wahrscheinlich, wie hier vorgeschlagen, das gesamte Projekt in WPF neu beginnen.

    =O
    Da nimmst du dir was vor. Schau mal die ersten Kapitel meiner Signatur durch, erst dann solltest du entscheiden ob WinForms oder WPF.
    Bist du unter WinForms noch nicht so "geübt" empfielt es sich vieleicht sogar gleich mit WPF zu lernen, ein umstieg jedoch fällt den meissten eher schwer.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Mir ist jetzt nicht mehr klar, was das Problem ist, welches durch die genannten Beiträge nicht zur Lösung führt. RfGs Vorschlag kümmert sich um das Auflösungsproblem, EdRs und mein Vorschlag um das Thema "Form, pass Dich an, wenn man Deine Größe ändert". Was funktioniert also nicht?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.