Xamarin.forms 如何在XAML中为Xamarin表单的RelativeLayout编写以下语句?
我想在Xamarin表单的RelativeLayout中安排一些控件。 在C#中,我编写了以下代码来归档我的目标:Xamarin.forms 如何在XAML中为Xamarin表单的RelativeLayout编写以下语句?,xamarin.forms,Xamarin.forms,我想在Xamarin表单的RelativeLayout中安排一些控件。 在C#中,我编写了以下代码来归档我的目标: _avatar = new Xamarin.Forms.Image(); _rlTopLayout.Children.Add(_avatar, xConstraint: Constraint.Constant(0), yConstraint: Constraint.Constant(0), widthConstraint: Constraint.Const
_avatar = new Xamarin.Forms.Image();
_rlTopLayout.Children.Add(_avatar,
xConstraint: Constraint.Constant(0),
yConstraint: Constraint.Constant(0),
widthConstraint: Constraint.Constant(78),
heightConstraint: Constraint.Constant(94)
);
_roundedBorderEntry = new Xamarin.Forms.Entry();
_rlTopLayout.Children.Add(_roundedBorderEntry,
xConstraint: Constraint.RelativeToView(_avatar, (parent, sibling) => sibling.X + sibling.Width),
yConstraint: Constraint.RelativeToView(_avatar, (parent, sibling) => sibling.Y),
widthConstraint: Constraint.RelativeToView(_avatar, (parent, sibling) => parent.Width - sibling.Width),
heightConstraint: null
);
如何使用XAML布局文件存档此文件?特别是用下面的表达:
xConstraint: Constraint.RelativeToView(_avatar, (parent, sibling) => sibling.X + sibling.Width)
widthConstraint: Constraint.RelativeToView(_avatar, (parent, sibling) => parent.Width - sibling.Width)
heightConstraint: null
在代码中创建
RelativeLayout
约束肯定比在XAML中更容易。您可以看到开发人员讨论可用语法的地方
然而,对于你的情况来说,这可能还不够。请参阅MikeEEE的帖子,他创建了一个自定义标记扩展来处理特殊情况。他在他的GitHub和示例页面上发布了示例。XAML,假设图像是100乘50:
<RelativeLayout x:Name="relativeLayout" HorizontalOptions="FillAndExpand" >
<Image x:Name="image" Source="100x50.png" WidthRequest="100" HeightRequest="50"/>
<Entry x:Name="entry" Text="enter text here"
RelativeLayout.XConstraint=
"{ConstraintExpression Type=RelativeToView, ElementName=image,
Property=Width, Factor=1, Constant=0}"
RelativeLayout.WidthConstraint=
"{ConstraintExpression Type=RelativeToParent,
Property=Width, Factor=1, Constant=-100}" />
</RelativeLayout>
请注意,在XAMLsibling
中,使用x:Name
和ElementName=ElementName
构造引用命名元素