首页 文章

顶部对齐Xamarin表单中的方面填充图像

提问于
浏览
3

Update: I have simplified the example and code and provided an image

我有一个包含两个图像的堆栈布局 . 第一张图片只是为了显示整个图像 . 第二个图像具有固定高度,图像方面设置为AspectFill . 我看到第二张图片的中间部分但想看到顶部 . 有什么办法可以实现吗?

这是XAML

<StackLayout Spacing="20">

    <Image Source="darth.jpg" />

    <Image Source="darth.jpg"
           HeightRequest="100"
           Aspect="AspectFill" />

</StackLayout>

这是它的样子 . 我希望第二张图像显示图像的顶部,而不是中间部分 .

enter image description here

2 回答

  • 3

    Xamarin.Forms Image 实现中没有代码,它使用 Aspect.AspectFill 调整图像的位置,因此您有两个选项:

    • 尝试在第二个图像周围添加 HeightRequest="100" 的额外换行,并从中删除 HeightRequest="100"Aspect="AspectFill" .

    • 在此guide之后为目标平台实施您自己的 ImageRenderer .

  • 2

    如果在Image上设置HeightRequest,那将导致Xamarin.Forms进行裁剪,并且似乎没有任何关于它的事情 . 但是,如果将其包装在HeightRequest为100的ScrollView中,它将根据需要进行渲染:

    var image = new Image()
    {
        Source = "darth.jpg",
        Aspect = Aspect.AspectFill
    };
    var imageWrap = new ScrollView()
    {
        HeightRequest = 100,
        Content = image
    };
    

    这具有添加的功能,用户将能够滚动图像 . 根据具体情况,这可能并不理想 . 另外,根据Xamarin documentation

    不应嵌套ScrollViews . ScrollViews不应与其他提供滚动的控件嵌套,如ListView和WebView .

相关问题