Laden...

Anchor in WPF

Erstellt von Jack2000 vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.619 Views
J
Jack2000 Themenstarter:in
43 Beiträge seit 2008
vor 15 Jahren
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.

.
332 Beiträge seit 2006
vor 15 Jahren

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.

J
Jack2000 Themenstarter:in
43 Beiträge seit 2008
vor 15 Jahren

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.

U
1.688 Beiträge seit 2007
vor 15 Jahren

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.