在Xamarin.Forms RelativeLayout中使用Constant和Factor?

Adi*_*ari 4 xamarin xamarin.forms

我已经阅读了很多关于相对布局的文档,但是我没有得到Constant和Factor的确切含义.可以解释一下吗?

Den*_*öer 9

你说过你已经阅读了很多文档,但我认为如果你仔细观察,RelativeLayout文档会给出一个很好的例子:

这个XAML:

<BoxView Color="Green" WidthRequest="50" HeightRequest="50"
    RelativeLayout.XConstraint =
      "{ConstraintExpression Type=RelativeToParent,
                             Property=Width,
                             Factor=0.5,
                             Constant=-100}"
    RelativeLayout.YConstraint =
      "{ConstraintExpression Type=RelativeToParent,
                             Property=Height,
                             Factor=0.5,
                             Constant=-100}" />
Run Code Online (Sandbox Code Playgroud)

与此C#相同:

layout.Children.Add(box, Constraint.RelativeToParent((parent) =>
    {
      return (.5 * parent.Width) - 100;
    }),
    Constraint.RelativeToParent((parent) =>
    {
        return (.5 * parent.Height) - 100;
    }),
    Constraint.Constant(50), Constraint.Constant(50));
Run Code Online (Sandbox Code Playgroud)

如果你看一下C#代码,你可能会更清楚:

  • Factor 是值乘以的因子
  • Constant 是一个偏移量,在乘以系数后,它将与您的值相加

所以这是公式:

(因子*值)+常数

一个例子:

  • 值= 300
  • 因子= 0.5
  • 常数= - 100

这将导致:(0.5*300) - 100 = 50