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>
这是它的样子 . 我希望第二张图像显示图像的顶部,而不是中间部分 .
2 回答
Xamarin.Forms
Image
实现中没有代码,它使用Aspect.AspectFill
调整图像的位置,因此您有两个选项:尝试在第二个图像周围添加
HeightRequest="100"
的额外换行,并从中删除HeightRequest="100"
和Aspect="AspectFill"
.在此guide之后为目标平台实施您自己的
ImageRenderer
.如果在Image上设置HeightRequest,那将导致Xamarin.Forms进行裁剪,并且似乎没有任何关于它的事情 . 但是,如果将其包装在HeightRequest为100的ScrollView中,它将根据需要进行渲染:
这具有添加的功能,用户将能够滚动图像 . 根据具体情况,这可能并不理想 . 另外,根据Xamarin documentation: