Xamarin 以编程方式在底部形成垂直对齐图像
Posted
技术标签:
【中文标题】Xamarin 以编程方式在底部形成垂直对齐图像【英文标题】:Xamarin Forms vertical align image at bottom programmatically 【发布时间】:2014-07-20 17:57:44 【问题描述】:在(相对)新的 Xamarin 表单中,我试图将图像垂直对齐到滚动视图的底部。
这是我的代码,这正是我想要的(对于较大的图像,它会滚动)。但是当我有一个小于设备高度的图像时,它应该与屏幕底部对齐,而不是屏幕的中心(可能是默认值)。由于文档(仍然)缺乏,我该如何在代码中实现这一点?
return new ContentPage
Content = new ScrollView
Orientation = ScrollOrientation.Vertical,
BackgroundColor = Color.Black,
Content = new Image
Source = ImageSource.FromFile (image)
;
我已经尝试过了,但它给出了一个错误,即以下方法或属性之间的调用不明确......
RelativeLayout rl = new RelativeLayout ();
rl.Children.Add (new ScrollView
Orientation = ScrollOrientation.Vertical,
BackgroundColor = Color.Black,
Content = new Image
Source = ImageSource.FromFile (image)
);
return new ContentPage
Content = rl
;
【问题讨论】:
【参考方案1】:在 Xamarin Studio 中的程序集浏览器中,Children.Add 的选项是:
void Add(T view, Expression<Func<Rectangle>> bounds);
void Add(T view, Expression<Func<double>> x = null, Expression<Func<double>> y = null, Expression<Func<double>> width = null, Expression<Func<double>> height = null);
void Add(T view, Constraint xConstraint = null, Constraint yConstraint = null, Constraint widthConstraint = null, Constraint heightConstraint = null);
其中 Expression 是 System.Linq.Expresssions 中的类型。
您收到一个模棱两可的调用错误,因为所有这些重载都具有除视图之外的所有参数的默认值。
为了使用 Children 的对象初始化器,您需要传入您的表达式或约束,例如:
rl.Children.Add (
new ScrollView
Orientation = ScrollOrientation.Vertical,
BackgroundColor = Color.Black,
Content = new Image
Source = ImageSource.FromFile (image)
,
Constraint.Constant(0),
Constraint.Constant(0)
)
Constraint.RelativeToParent
和 Constraint.RelativeToView
在简单的情况下很有用,表达式树可以解决任意布局问题。
【讨论】:
谢谢,这正在工作,它现在也在iosapi.xamarin.com/?link=T%3aXamarin.Forms.RelativeLayout的文档中以上是关于Xamarin 以编程方式在底部形成垂直对齐图像的主要内容,如果未能解决你的问题,请参考以下文章