我将不同的元素,控件和视图包裹在框架中以应用转角半径,这在Android上工作正常。但是在iOS方面,即使框架是圆角的,其内容也不会裁剪到其半径,而是保持正方形,就像什么都没有应用一样。
示例:-
<Frame BackgroundColor="{DynamicResource Theme}" CornerRadius="15" Padding="0">
<Image Source="{Binding PImage}" HeightRequest="132.5" Aspect="AspectFill"/>
</Frame>
预期(在Android中会发生这种情况):-
实际:-
如何像Android中那样使框架内容尊重拐角半径?
答案 0 :(得分:1)
将框架的内容剪切到其边界:
<StackLayout Padding="30">
<Frame CornerRadius="30" Padding="0" IsClippedToBounds="True">
<Image Source="https://aka.ms/campus.jpg" />
</Frame>
</StackLayout>
答案 1 :(得分:0)
从共享代码中可以在我的本地站点工作:
示例解决方案:检查 Visual Studio 和 Xamarin Forms 的版本。确保已将其更新为最新版本。 ( Visual Studio:16.6.5
,Xamarin Forms:4.7.0.1239
)。
否则,您可以在iOS中创建一个Custom Frame Renderer来设置CornerRadius
。
创建 CustomFrame :
public class CustomFrame: Frame
{
}
在iOS中创建自定义渲染器:
public class CustomFrameRenderer : FrameRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
{
base.OnElementChanged(e);
Layer.CornerRadius = Element.CornerRadius;
//Layer.CornerRadius = 15;
Layer.MasksToBounds = true;
}
}
在 Xaml 中,使用自定义渲染器:
<local:CustomFrame BackgroundColor="CadetBlue"
Padding="0">
<Image Source="XamarinLogo.png"
HeightRequest="132.5"
Aspect="AspectFill" />
</local:CustomFrame>