按位置和大小定位 XAML 子项

Posted

技术标签:

【中文标题】按位置和大小定位 XAML 子项【英文标题】:Position XAML child by location and size 【发布时间】:2020-07-09 21:01:41 【问题描述】:

我想设置子元素的位置(x 和 y)及其大小(宽度和高度)。我找不到办法做到这一点。如果我设置了 Grid 的边距 - 我不能只设置 Left 和 Top,我还必须设置 Right 和 Bottom 以及它们。如果我使用 AbsoluteLayout 而不是 Grid,它会占用大量 CPU。

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

【问题讨论】:

【参考方案1】:

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

对于绝对定位,您可以使用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 允许您使用星号表示法指定行/列以及它们之间的间距和相对大小。

【讨论】:

以上是关于按位置和大小定位 XAML 子项的主要内容,如果未能解决你的问题,请参考以下文章

按面板右侧微调ggplot大小和图例位置

咸鱼教程Egret可长按识别二维码(精确位置和大小)

XAML 调整窗口大小和窗口内的所有元素

关于CSS定位问题,在首页时搜索框位置显示正常,但是到分类产品页面时,位置还有大小都变了!求救!

在orientationchange事件后调整大小/位置div

CSS DIV绝对定位 后 页面的大小改变 div层位置如何保持不变