我试图围绕堆栈布局的角落,它适用于Android,但在iOS上,它们仍然显示为方形,但它确实显示帧阴影
我的XAML是
<ContentPage.Content>
<StackLayout BackgroundColor="WHITE">
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Frame CornerRadius="10" Padding="0" Margin="10, 10, 10, 10">
<StackLayout>
. . .
</StackLayout>
</Frame>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
它们仍然显得方正
实际上,Frame
是圆形而不是StackLayout
,我们只是使用Frame wrap it,所以看起来StackLayout有圆角。
<Frame CornerRadius="10" Padding="0" Margin="10, 10, 10, 10" HasShadow="False" BackgroundColor="Red">
<StackLayout >
<Label Text="{Binding}"/>
</StackLayout>
</Frame>
<Frame CornerRadius="10" Padding="0" Margin="10, 10, 10, 10" HasShadow="False" >
<StackLayout BackgroundColor="Red">
<Label Text="{Binding}"/>
</StackLayout>
</Frame>
它确实显示了Frame阴影
你可以通过HasShadow="False"
禁用它。
将IsClippedToBounds
属性设置为Frame控件:
<Frame IsClippedToBounds="True" CornerRadius="10" Padding="0" Margin="10, 10, 10, 10">
<StackLayout>
</StackLayout>
</Frame>
其实我相信,这是一个Xamarin.Forms的错误。 UWP,Android和iOS的行为应该相同,但它们没有。因此,实现相同的行为,开发人员需要使用OnPlatform功能。
这里描述和讨论了这个bug,它仍然是开放的:https://github.com/xamarin/Xamarin.Forms/issues/2405