Xamarin子框半径在父角半径上溢出

时间:2018-06-21 12:57:39

标签: xaml xamarin xamarin.forms

我有一个Xamarin Forms项目,该项目具有基于卡片的界面,其中每个卡片的转角半径为1,填充为0。在卡片内,顶部元素是Heading控件,边距为0,由一个框架和一个背景颜色和其中的标签。

问题在于,由于“标题”控件没有圆角,与Card的拐角相交的角将溢出并呈现在Card外部,看起来不正确。

有什么方法可以告诉Xamarin XAML渲染器在父母的圆角处适当地切掉孩子的角?

这是一张图片,显示我的意思。绿色的尖角在父卡的外部渲染。

example

1 个答案:

答案 0 :(得分:1)

要在Android,iOS和UWP上使用Xamarin.Forms version 3.1.583944作为背景和圆角来获得相同的结果,请尝试以下XAML:

<OnPlatform x:TypeArguments="View">
  <On Platform="UWP">
    <Frame CornerRadius="20" OutlineColor="Black" Padding="0" Margin="12,0" HeightRequest="40">
      <StackLayout BackgroundColor="Green">
        <Label Text="BackgroundColor in StackLayout" Margin="20,0" />
      </StackLayout>
    </Frame>
  </On>
  <On Platform="Android, iOS">
    <Frame CornerRadius="20" OutlineColor="Black" BackgroundColor="Green" Padding="0" Margin="12,0" HeightRequest="40">
      <StackLayout>
        <Label Text="BackgroundColor in Frame" Margin="20,0" />
      </StackLayout>
    </Frame>
  </On>
</OnPlatform>

似乎这两个平台似乎都无法产生相同的结果,可能是通过本机平台设计得出的(例如,在上述两种情况下,Android都会在圆角内生成背景,而在BackgroundColor中设置{ {1}},在Frame中设置BackgroundColor时,UWP在圆角内产生背景。

请注意,报告了UWP on Frame CornerRadius的某些问题。