按位置和大小排名 XAML child

Position XAML child by location and size

我想设置 child 元素的位置(x 和 y)及其大小(宽度和高度)。我找不到办法做到这一点。如果我设置一个网格的边距——我不能只设置左边和顶部,我还必须同时设置右边和底部。如果我使用 AbsoluteLayout 而不是 Grid,它会占用大量 CPU 使用。

那么有没有什么方法可以指定位置和大小(如在 Winforms 中)或者 UWP 是否不够先进?

像这样的绝对定位是一个非常有问题的事情,因为应用程序需要 运行 在各种屏幕尺寸的设备上,并且可以由用户随时调整大小。如果你使用绝对定位,你需要确定你会有这样的维度可用。

对于绝对定位,您可以使用 Canvas。然后,您可以使用 Canvas.LeftCanvas.Right 附加属性指定位置,并使用 HeightWidth 指定大小,例如:

<Canvas>
   <Button Canvas.Left="100" Canvas.Top="20" Width="200" Height="120" />
   <Rectangle Canvas.Left="30" Canvas.Top="50" Width="64" Height="20" Fill="Blue" />
</Canvas>

另一方面,在大多数情况下,使用相对布局控件仍然更可取。 Grid 允许您指定 rows/columns 以及它们之间的间距和使用星号的相对大小。