Ich möchte die Margin
Eigenschaft auf die Mitte der UIElement
und nicht die obere linke Ecke verweisen. Auf diese Weise, wenn ich die Breite/Höhe des UIElement
ändere, bleibt es an der gleichen Stelle.Wie wird der Rand relativ zum Mittelpunkt des UIElement und nicht zu seiner oberen linken Ecke in einem Raster gesetzt?
Gibt es eine Möglichkeit, dieses Verhalten zu konfigurieren, oder muss ich mich auf Binding verlassen, um die Anpassung vorzunehmen?
Danke.
Zum Beispiel, wenn ich die Width/Height
des folgenden Rechtecks ändern, wird seine Mitte verschieben.
<Grid>
<Rectangle Fill="#FF991C1C" Width="10" Height="40" HorizontalAlignment="Left" Margin="90,161,0,0" VerticalAlignment="Top"/>
</Grid>
ein Element margin „relativ zu seiner oberen linken Ecke“ nicht den Fall, es ist nur die [Dicke] (http://msdn.microsoft.com/en-us/library/system.windows. thickness.aspx) (oder vier verschiedene Dicken) eines Rahmens um das Begrenzungsrechteck des Elements. In diesem Sinne kann es auch nicht relativ zum Zentrum des Elements sein. – Clemens
In diesem Fall wird der Rand des Rectangle verwendet, um ihn im Grid zu positionieren, oder? Und der Versatz des Randes ist relativ zur oberen linken Ecke des Rechtecks, richtig? – Nock
Das hängt von der Ausrichtung innerhalb einer Gitterzelle ab. Wenn HorizontalAlignment "Right" ist, wird das Element rechtsbündig mit einem rechten Rand relativ zur oberen - ** rechten ** Ecke ausgerichtet. – Clemens