Laden...

Anchor in WPF

Letzter Beitrag vor 16 Jahren 4 Posts 3.655 Views
Anchor in WPF

Hallo

Wie kann ich den Anchor von Controls einfach setzen?
Wenn ich nämlich die Höhe und Breite von Controls festlege, werden sie nicht mehr in der Größe geändert, wenn ich die Fenstergröße ändere.
Wenn ich aber Margin nehme, gehts, aber nicht überall. Innerhalb eines Canvas oder DockPanels klappts nicht, aber z.B. im Grid. Wieso ist das so kompliziert?

Kennt jemand einen einfachen Weg, wie es überall funktioniert (in jedem Panel)? Unabhängig von anderen Einstellungen (wie erwähnt, wenn Breite und Höhe festgelegt wurden, gehts nicht)? Am besten so etwas wie Control.Anchor=...

P.S: Die Eigenschaften HorizontalAlignment und VerticalAlignment sind beide auf Stretch.

Diese, ich nenne sie LayoutManager (Grid, Canvas) haben ein unterschiedliches Verhalten. Sie sind für Unterschiedliche Zwecke gedacht.

Um ein ähnliches Verhalten wie Anchor zu nutzen, empfehle ich dir ein Grid. Ein Canvas ist eher für eine absolute Positionierung gedacht.

Leider ist WPF durch einen enormen Funktionszuwachs auch komplzierter geworden. So ist es aber immer. Umso mehr Möglichkeiten man haben möchte, umso schwerer ist es somit auch, das Beste für sich zu finden.

Danke für deine Informationen.
Wenn ich nun ein Grid nehme, besteht noch das Problem der Breiten- bz. Höhenangabe des Controls z.B. Button. Wie kann man das umgehen? Denn sobald ich im Designer die Größe des Buttons ändere, fügt er immer diese Angaben hinzu, wodurch die Anchor-Funktion nicht mehr besteht.

Sobald Du die Breite und Höhe des Buttons änderst, heißt das, dass Du genau diese Breite und Höhe haben willst - folglich darf es auch keine automatische Größenanpassung mehr geben.
Der Designer ist in dieser Hinsicht etwas beschränkt - willst Du eine bestimmte Ausgangsgröße haben, kannst Du ja "Margin" entsprechend anpassen.