Xamarin.forms 顶部对齐Xamarin表单中的纵横比填充图像
更新:我简化了示例和代码,并提供了一幅图像 我有一个包含两个图像的堆栈布局。第一个图像只是显示整个图像。第二个图像具有固定高度,并且图像纵横比设置为AspectFill。我看到了第二张图片的中间部分,但希望看到顶部。我有什么办法可以做到这一点吗 这是XAMLXamarin.forms 顶部对齐Xamarin表单中的纵横比填充图像,xamarin.forms,Xamarin.forms,更新:我简化了示例和代码,并提供了一幅图像 我有一个包含两个图像的堆栈布局。第一个图像只是显示整个图像。第二个图像具有固定高度,并且图像纵横比设置为AspectFill。我看到了第二张图片的中间部分,但希望看到顶部。我有什么办法可以做到这一点吗 这是XAML <StackLayout Spacing="20"> <Image Source="darth.jpg" /> <Image Source="darth.jpg" He
<StackLayout Spacing="20">
<Image Source="darth.jpg" />
<Image Source="darth.jpg"
HeightRequest="100"
Aspect="AspectFill" />
</StackLayout>
这是它的样子。我希望第二张图片显示图片的顶部,而不是中间部分
Xamarin.Forms
Image
实现中没有代码,它使用Aspect.AspectFill
调整图像的位置,因此这里有两个选项:
HeightRequest=“100”和Aspect=“AspectFill”
ImageRenderer
如果在图像上设置HeightRequest,这将导致Xamarin.Forms进行剪切,而您似乎对此无能为力。但是,如果在ScrollView中以100的HeightRequest将其包装,它将按照您的需要进行渲染:
var image = new Image()
{
Source = "darth.jpg",
Aspect = Aspect.AspectFill
};
var imageWrap = new ScrollView()
{
HeightRequest = 100,
Content = image
};
这增加了用户可以滚动浏览图像的功能。根据具体情况,这可能并不可取。此外,根据:
滚动视图不应嵌套。滚动视图不应嵌套
使用其他提供滚动的控件,如ListView和WebView
可以通过使用依赖关系服务管理或缩放图像来实现。在创建问题时是否跳过复制行定义和列定义?我不知道这是否与你的问题有关,但是没有这些的网格看起来很奇怪。但也许更重要的是,你尝试过相对布局吗?只使用StackLayout与父布局无关。我重新编写了这个问题,以从问题中删除网格和自定义控件。这与图像控件处理具有固定高度的纵横比填充的方式有关。尝试添加额外的环绕。没用。当图像控件高度小于实际图像高度时,非常确定内置图像渲染器将图像居中。不幸的是,自定义渲染器似乎是一种可行的方法。它并非在所有情况下都能很好地工作。按预期在iOS上工作。然而,在Android上,只有当源位图大于图像控件的宽度时,它才起作用。如果它比它小,它会以这样的方式剪辑内容,即使滚动也无法查看所有内容。