在iOS上,框架角落半径不会圆角

时间:2018-03-04 04:34:25

标签: xaml xamarin xamarin.forms xamarin.ios

我试图围绕堆栈布局的角落,它适用于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>

3 个答案:

答案 0 :(得分:4)

  

它们仍然显得正方形

实际上,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>

enter image description here

StackLayout

<Frame CornerRadius="10" Padding="0" Margin="10, 10, 10, 10" HasShadow="False" >
   <StackLayout BackgroundColor="Red">
         <Label Text="{Binding}"/>
   </StackLayout>
</Frame>

enter image description here

  

它确实显示了帧阴影

您可以HasShadow="False"禁用它。

答案 1 :(得分:2)

IsClippedToBounds属性设置为Frame控件:

<Frame IsClippedToBounds="True" CornerRadius="10" Padding="0" Margin="10, 10, 10, 10">
    <StackLayout>
    </StackLayout>
</Frame>

答案 2 :(得分:1)

实际上,我相信这是Xamarin.Forms的错误。 UWP,Android和iOS的行为应相同,但事实并非如此。因此,要实现相同的行为,开发人员需要使用OnPlatform功能。

此处描述并讨论了该错误,该错误仍处于打开状态:https://github.com/xamarin/Xamarin.Forms/issues/2405