Announcement

Collapse
No announcement yet.

Anfängerfrage - Zentrieren von Komponenten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anfängerfrage - Zentrieren von Komponenten

    Liebe Community

    Ich hätte eine Frage an euch. Ich bin gerade dabei ein einfach-gestricktes, aber dynamisches GUI in VisualStudio zu stricken. Das heißt das GUI soll sich der Auflösung des Bildschirmes dynamisch anpassen. Bisher klappt alles ganz gut, allerdings bin ich gerade bei der Ausrichtung einer GroupBox auf einer einfachen WindowsForm auf eigenartige Dinge gestoßen.
    Die Größe der WindowsForm wurde vorher mit Size (intDimX, intDimY) skaliert. Die GroupBox wollte ich im Anschluss zentrieren (zumindest in der horizontalen). Mein Vorgehen war:

    Code:
    ...
      
    private int intOptX, intOptY;
    private int intDimX , intDimY ;
    
    class optTestProgram(){
       ...
       
       Size = new Size(intDimX, intDimY);
       intOptX = intDimX * 2 / 5;
       intOptY = intDimY * 2 / 5;
    
       optTest.Size = new Size(intOptX, intOptY);
       optTest.Location = new Point( (intDimX / 2) – (intOptX / 2), intDimY * 1 / 3);
    
       ...
    }
    ...
    Wenn die Hälfte der Form gewählt wird, sollte die GroupBox (links oben) ja genau in der Mitte des Fensters angesetzt werden. Wenn ich davon noch die Hälfte der GroupBox abziehe, müsste sie ja genau mittig liegen. Leider ist es nun aber so, dass (und das ist immer so) der übrige-gebliebene linke Rand breiter als der rechte ist…nicht viel, aber schon deutlich.

    Viele Grüße
    Jesfreric

  • #2
    In Winforms ist das eher hoffnungslos das im allgemeinen hinzubekommen. Winforms kapselt die Windows Common Controls die aus Zeiten stammen als große Auslösungen kein Thema waren. Und es hat sich auch kaum weiterentwickelt.
    Neben der Auflösung musst du auch die DPI Einstellungen von Winforms berücksichtigen und das eingestellte Scaling Verfahren der benutzten Controls (Font basiert oder DPI basiertes Scaling). Jedes Control hat da seine sprziellen Eigenheiten die da berücksichtigt werden wollen.


    Aber ich denke deine Frage zielt in eine ganz andere Richtung. Wenn du einfach mit der Größe mitskalieren willst also deine GroupBox an der Größe der Form anpassen willst solltest du einfach die Anchor des Controls passend setzen.

    Comment

    Working...
    X