如何使用RelativeLayout的约束在屏幕底部定位元素?

时间:2016-08-05 11:24:33

标签: c# xaml xamarin xamarin.forms relativelayout

如何使用RelativeLayout的约束将元素放置在屏幕底部?目前,我正在使用此代码:

<Image x:Name="img" Opacity="1"
                VerticalOptions="EndAndExpand"
                RelativeLayout.WidthConstraint=
                  "{ConstraintExpression Type=RelativeToParent, Property=Width}"
                RelativeLayout.HeightConstraint=
                  "{ConstraintExpression Type=RelativeToParent, Property=Height}"/>

要将图片设置为背景,但是我需要它从底部开始,因此,我需要将它放在底部。我该怎么办?我没有在互联网上找到任何这方面的例子。提前谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用RelativeView作为容器。 在水平选项和垂直选项中使其成为FillAndExpand。 所以现在你的屏幕尺寸就是相对布局的大小。

现在你有一个从左下角开始的图像和全宽:

<Image x:Name="img" Opacity="1"
                VerticalOptions="EndAndExpand"
                RelativeLayout.WidthConstraint=
                  "{ConstraintExpression Type=RelativeToParent, Property=Width}"
                RelativeLayout.HeightConstraint=
                  "{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.25}"
                RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.75}"/>

如果图像尺寸小于屏幕,也可以设置宽高比。

  

Aspect - 如何在显示的范围内调整图像大小   内(无论是拉伸,裁剪还是信箱)。

Aspect确定如何缩放图像以适合显示区域:

  • 填充 - 将图像拉伸到完全并准确填充显示区域。这可能会导致图像失真。
  • AspectFill - 剪切图像,使其填充显示区域,同时保留纵横比(即无失真)。
  • AspectFit - 将图像信箱(如果需要)整个 图像适合显示区域,并添加了空白区域 顶部/底部或侧面取决于图像是宽还是宽 高。

答案 1 :(得分:1)

您可以相对于父级设置图像的X位置(和/或Y位置)(就像使用或高度一样)。我使用以下代码在屏幕的右下角放置一个按钮(宽度和高度为60):

<ContentView RelativeLayout.XConstraint="{ConstraintExpression
                      Type=RelativeToParent, Property=Width, Constant=-70}"
             RelativeLayout.YConstraint="{ConstraintExpression
                      Type=RelativeToParent, Property=Height, Constant=-70}">
    <Button />
</ContentView>

您可以在Xamarin Documentation

中找到更多详细信息