Laden...

Dynamische Größe eines Controls anhand des Parent-Controls

Erstellt von Buh vor 6 Jahren Letzter Beitrag vor 6 Jahren 740 Views
B
Buh Themenstarter:in
9 Beiträge seit 2018
vor 6 Jahren
Dynamische Größe eines Controls anhand des Parent-Controls

Hallo

Ich erstelle mir gerade ein Programm, welches Controls aus einer XML-Struktur ausließt und in einen Container - wie Beispielweise einer GroupBox oder einem Panel - anzeigt.
Zusätzlich kann ich ebenso diese Controls durch "Drag & Drop" in den Container ziehen und diese dann in die erwähnte XML-Struktur abspeichern.

Das Problem dabei ist, dass es komisch ist, diese Controls, welche bei Drag & Drop in den Container gezogen werden, richtig an die Breite des Containers anzupassen.

  1. Beim Setzten der Breite des Controls (DraggedControl.Width = Container.Width) passiert es, dass das Control an der rechten Seite des Containers unterläuft und es dann nur noch durch speziefische, hard gecodete angaben möglich ist, dass das Control "bündig" an das Container-Element anliegt.

  2. Beim Probieren der Eigenschaft "Dock" füllt sich zwar das Element an die jeweilige Position, ist dann aber nicht mehr positionierbar.

Als einfaches Beispiel, so was ich meine, ist bei HTML das "margin: auto;" Attribut.
Wenn man sich nen Container macht, Breite und Höhe sowie Position manuell setzt und dann Beispielweise einen Paragraphen mit einem "margin:auto;" in den Container setzt, passt sich dieser automatisch an die komplette Breite des Containers an.
Anschließend kann man da ja noch - wie normal auch - Padding, Border etc setzten.

Ich hoffe ihr konntet mein Problem verstehen und würd mich um eine Antwort freuen.

Ebenso schöne Ostertage.

MfG

buh

4.942 Beiträge seit 2008
vor 6 Jahren

Benutze ClientRect (innere Breite und Höhe, ohne Rand):


DraggedControl.Width = Container.ClientRect.Width;