ViewCell - 图像填充,底部文本

时间:2015-05-16 11:21:33

标签: xamarin xamarin.forms

我想要的布局是这样的:http://imgur.com/etb9ZKZ

我希望图像(以绿色显示)填充整个layoutcontol。在图像的顶部放置在底部的全宽我想要一个文本框/标签来放置标题。标题视图应具有黑色半透明背景。

这是我得到的最好的(下面的代码),但它有一些问题:

#1 - 文本没有像它想象的那样换行。它只是削减句子,就像其他人正在关闭屏幕一样。

#2 - 图像不会缩放到容器的宽度。

Utils.matToBitmap

1 个答案:

答案 0 :(得分:0)

你应该使用Grid。

    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;