有人可以向我解释xamarin形式的约束,因子和常数吗?

时间:2018-01-03 08:45:18

标签: xaml xamarin xamarin.forms background-image relativelayout

我已经阅读了相关文档,但却无法理解。我有这个代码

 <RelativeLayout Padding="0" Margin="0" HorizontalOptions="FillAndExpand" HeightRequest="300" VerticalOptions="Start" BackgroundColor="Green">
            <Image
        Source="infoBox.png" x:Name="infobox"  WidthRequest="400"
    RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToView, Property=Height,Factor=1,Constant=0}" 
                 RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToView, Property=X, Factor=0.10, Constant=25}"
               />
            <Label Text=":)"
        RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToView, Property=Y, Constant=5}"
        RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToView, Property=X, Factor=0.10, Constant=25}"
        TextColor="#000000"/>
        </RelativeLayout>

我正在尝试将一些文本显示在图像上,该图像占据主要细节导航中的详细页面的全宽但不是全高。我尝试改变常数/因子,但我不知道它做了什么,每次结果都没有显示我的预期。有人可以解释常数和因素的作用吗?就像一个例子,如果我为X约束设置因子为1,它会做什么?将宽度设为原始宽度还是填充整个宽度?

沮丧而不理解它究竟做了什么。请帮忙:(

1 个答案:

答案 0 :(得分:1)

类型是您所关注的定位或尺寸。它可以是RelativeToParent或RelativeToView。如果view使用ElementName来说出哪个视图。

属性是您尝试在控件上设置的属性。您可以设置宽度或高度或X坐标。

因子是您要使用的父级或视图的百分比。如果父级是500像素且因子是0.5,那么您将设置值250。

常量允许您使用因子更改计算的值。如果将Constant设置为-100,那么我们之前计算的值现在将为150。

说完这一切之后,使用网格定位图像和标签会容易得多。

将图像和标签放在同一网格行中,然后使用水平和垂直选项将标签定位在行内。使用保证金稍微上下移动标签。

Relative layout should be avoided it at all possible as it has a high computational cost according to the father of Xamarin forms Jason Smith