在 Xamarin.Forms 中在框架内显示图像的一部分
Display part of an Image, inside a Frame, in Xamarin.Forms
在 Xamarin.Forms 中,如何在框架内仅显示较大图像的特定部分(即裁剪图像)?
假设我,例如想显示右下象限,像这样:
图片:
帧数:
我想要的部位(比如右下腹):
要显示(包含部分图像的框架):
我的代码(双边框只是为了加厚边框):
<Frame BorderColor="#880014" BackgroundColor="#880014" Padding="4">
<Frame BorderColor="#880014" BackgroundColor="#FFFFFF" Padding="0">
<!--
An Image something like this...
<Image Source="{local:ImageResource SGC.Resources.SGCLogo.png}" Aspect="Fill" ... />
-->
</Frame>
</Frame>
解决方案是在 <Frame>
中使用带有比例值的 <AbsoluteLayout>
。
<AbsoluteLayout>
<Image Source="{local:ImageResource SGC.Resources.SGCLogo.png}"
AbsoluteLayout.LayoutBounds="1, 1, 2, 2"
AbsoluteLayout.LayoutFlags="All"
Aspect="Fill"/>
</AbsoluteLayout>
设置 LayoutFlags 以将所有值视为比例:
AbsoluteLayout.LayoutFlags="All"
.
并使用 LayoutBounds 设置 "X, Y, Width, Height" 的比例值,即:
(AbsoluteLayout.LayoutBounds="1, 1, 2, 2"
)
其中“1, 1...”是右下象限。
(左下象限使用“0, 1...”):
并且“...2, 2”将图像裁剪为其大小的 1/4(两列和两行)。
(使用“...8, 8”表示 1/64 图像大小或使用“...2, 4”表示 1/8 大小):
在 Xamarin.Forms 中,如何在框架内仅显示较大图像的特定部分(即裁剪图像)?
假设我,例如想显示右下象限,像这样:
图片:
帧数:
我想要的部位(比如右下腹):
要显示(包含部分图像的框架):
我的代码(双边框只是为了加厚边框):
<Frame BorderColor="#880014" BackgroundColor="#880014" Padding="4">
<Frame BorderColor="#880014" BackgroundColor="#FFFFFF" Padding="0">
<!--
An Image something like this...
<Image Source="{local:ImageResource SGC.Resources.SGCLogo.png}" Aspect="Fill" ... />
-->
</Frame>
</Frame>
解决方案是在 <Frame>
中使用带有比例值的 <AbsoluteLayout>
。
<AbsoluteLayout>
<Image Source="{local:ImageResource SGC.Resources.SGCLogo.png}"
AbsoluteLayout.LayoutBounds="1, 1, 2, 2"
AbsoluteLayout.LayoutFlags="All"
Aspect="Fill"/>
</AbsoluteLayout>
设置 LayoutFlags 以将所有值视为比例:
AbsoluteLayout.LayoutFlags="All"
.
并使用 LayoutBounds 设置 "X, Y, Width, Height" 的比例值,即:
(AbsoluteLayout.LayoutBounds="1, 1, 2, 2"
)
其中“1, 1...”是右下象限。
(左下象限使用“0, 1...”):
并且“...2, 2”将图像裁剪为其大小的 1/4(两列和两行)。
(使用“...8, 8”表示 1/64 图像大小或使用“...2, 4”表示 1/8 大小):