让我更具体:我在网上找到了许多剪裁到框架或其他形状的图像的示例,但我需要创建一种由png图像制成的模板,该模板中有一个孔,并将用户图像放在该孔中,可能居中。如何以xamarin形式实现?最初,我考虑过将蒙版图像包装在框架中,但是要在孔本身中添加辅助图像非常困难,因此我尝试使用AbsoluteLayout进行定位,但是它不符合我的需要,这是xaml代码,非常简单:
<ContentView.Content>
<AbsoluteLayout>
<Image Source="ftoast.jpg" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1" />
<Image Source="temp1.png" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="1,1,1,1" />
</AbsoluteLayout>
</ContentView.Content>
</ContentView>
这是我实际上想要实现的目标:
如您所见,图像(薄煎饼)并非完全位于蒙版的顶部,但有少许边框。请记住,我必须将内部图像偏移量保存在某个位置以动态创建模板。
看来使用绝对布局是实现这一目标的最简单方法:我没有单独使用两个图像,而是添加了一个框架,该框架包装内部图像以使用AspectFill去除空白,然后将其与AbsoluteLayout的边界一起放置,并将其保存在类“模板”。如果您对该主题感兴趣,这是xaml代码:
<ContentView.Content>
<AbsoluteLayout>
<Frame AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.1,-1,-1" HeightRequest="300" WidthRequest="300" BackgroundColor="BlueViolet" Padding="0">
<Image Source="ftoast.jpg" Aspect="AspectFill" />
</Frame>
<Image Source="temp1.png" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.5,-1,-1"/>
</AbsoluteLayout>
</ContentView.Content>