Xamarin ViewCell-图像填充,底部文本
我想要的布局如下: 我希望图像(用绿色插图)填充整个布局控制。在位于底部的图片顶部,我想要一个文本框/标签来放置标题。标题视图应具有黑色半透明背景 这是我得到的最好的(下面的代码),但它有几个问题: #1-文本没有像预期的那样包装。它只是删掉了句子,就像其他的都要离开屏幕一样 #2-图像无法缩放到容器的宽度Xamarin ViewCell-图像填充,底部文本,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我想要的布局如下: 我希望图像(用绿色插图)填充整个布局控制。在位于底部的图片顶部,我想要一个文本框/标签来放置标题。标题视图应具有黑色半透明背景 这是我得到的最好的(下面的代码),但它有几个问题: #1-文本没有像预期的那样包装。它只是删掉了句子,就像其他的都要离开屏幕一样 #2-图像无法缩放到容器的宽度 Label lblTitle = new Label() { BackgroundColor = new Color(0, 0, 0,
Label lblTitle = new Label()
{
BackgroundColor = new Color(0, 0, 0, 0.8),
LineBreakMode = LineBreakMode.WordWrap,
FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label))
};
lblTitle.SetBinding(Label.TextProperty, "headline");
Image imgBanner = new Image()
{
/*
HorizontalOptions = LayoutOptions.Fill,
VerticalOptions = LayoutOptions.End,
Aspect = Aspect.Fill
*/
};
imgBanner.SetBinding(Image.SourceProperty, "ImageUrlSource");
AbsoluteLayout.SetLayoutFlags(lblTitle, AbsoluteLayoutFlags.PositionProportional | AbsoluteLayoutFlags.WidthProportional);
AbsoluteLayout.SetLayoutBounds(lblTitle, new Rectangle(0, 1, 1, AbsoluteLayout.AutoSize));
AbsoluteLayout.SetLayoutFlags(imgBanner, AbsoluteLayoutFlags.SizeProportional);
AbsoluteLayout.SetLayoutBounds(imgBanner, new Rectangle(0, 0, 1, 1));
AbsoluteLayout layout = new AbsoluteLayout()
{
HorizontalOptions = LayoutOptions.Fill,
Children =
{
imgBanner,
lblTitle
}
};
View = layout;
您应该改用网格
Label lblTitle = new Label()
{
BackgroundColor = new Color(0, 0, 0, 0.8),
LineBreakMode = LineBreakMode.WordWrap,
FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label))
};
lblTitle.SetBinding(Label.TextProperty, "headline");
Image imgBanner = new Image()
{
/*
HorizontalOptions = LayoutOptions.Fill,
VerticalOptions = LayoutOptions.End,
Aspect = Aspect.Fill
*/
};
imgBanner.SetBinding(Image.SourceProperty, "ImageUrlSource");
//=========== Addition Start Here ============//
Grid grid = new Grid();
grid.RowDefinitions =
{
new RowDefinition{ Height=new GridLength(200,GridUnitType.Absolute) },
new RowDefinition{ Height=new GridLength(30,GridUnitType.Absolute},
}
grid.Children.Add(imgBanner,0,1,0,2); //two rowspan
// == .Add(imgBanner,column,column+columnspan,row,row+rowspan)
grid.Children.Add(lblTitle,0,1,1,2); //one rowspan
View = grid;
这修复了文本相对于图像的位置,但是图像仍然不能正确地对齐/匹配。你对我如何着手做那件事有什么建议吗?使其水平填充并垂直安装?文本也不换行。如果没有足够的空间,它就会从屏幕上消失。我一直在尝试使用GridUnitType.Auto而不是Absolute,以使其适合内容,但没有任何运气。。。