我希望Margin
属性引用UIElement
的中心,而不是左上角。这样当我改变UIElement
的宽度/高度时,它就会停留在同一个位置。
有没有办法配置这种行为,或者我必须依靠Binding来进行调整?
感谢。
例如,如果我更改以下矩形的Width/Height
,其中心将移动。
<Grid>
<Rectangle Fill="#FF991C1C" Width="10" Height="40" HorizontalAlignment="Left" Margin="90,161,0,0" VerticalAlignment="Top"/>
</Grid>
答案 0 :(得分:2)
为什么不删除边距,并使用这些?
HorizontalAlignment="Center"
VerticalAlignment="Center"
答案 1 :(得分:1)
由于一个不明原因,如果我想让边距相对于中心,我无法弄清楚矩形对齐应该是中心。 这段代码使我的Rectangle表现得像我想要的那样。
<Grid>
<Rectangle Fill="#FF991C1C" Width="10" Height="40" HorizontalAlignment="Center" Margin="90,161,0,0" VerticalAlignment="Center"/>
</Grid>
答案 2 :(得分:-1)
在某些情况下,当尝试仅使用单个margin属性根据元素的中心而不是边缘定位元素时,我发现此解决方案很有用:
/* Declare a CSS variable equal to your element's width. */
:root{
--my-element-width: 40px;
}
/* Declare your margin as 50% minus half the element's width */
.myClass {
margin-right: calc(50% - var(--my-element-width));
}
/* Apply this class to the element in question. */