С помощью кода Shaw я нашел решение!
Я удалил фрейм и заменил два стека в сетке на два разных CustomRenderer, один для закругления левых углов и один для правых углов.
<Grid ColumnSpacing="0"
Padding="15,7,15,7">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<customRenders:LeftCornerRadiusFrame CornerRadius="5"
Grid.Row="0"
Grid.Column="0"
Padding="10"
BackgroundColor="{DynamicResource DarkGray}">
<Label>...</Label>
</customRenders:LeftCornerRadiusFrame>
<customRenders:RightCornerRadiusFrame Grid.Row="0"
Grid.Column="1"
CornerRadius="5"
Padding="10"
BackgroundColor="{DynamicResource DarkGrayVariant}">
<Image>...</Image>
</customRenders:RightCornerRadiusFrame>
</Grid>
В устройстве визуализации Android удалите конструктор и замените:
gi.SetCornerRadius(origFrame.CornerRadius);
на:
//in LeftCornerRadiusFrameRenderer
gi.SetCornerRadii(new float[] { origFrame.CornerRadius, origFrame.CornerRadius, 0, 0, 0, 0, origFrame.CornerRadius, origFrame.CornerRadius });
//in RightCornerRadiusFrameRenderer
gi.SetCornerRadii(new float[] { 0, 0, origFrame.CornerRadius, origFrame.CornerRadius, origFrame.CornerRadius, origFrame.CornerRadius, 0, 0 });
В приложении IOS Renderer (я еще не проверял его)) после:
Layer.CornerRadius = cornerRadius;
поставить:
//in LeftCornerRadiusFrameRenderer
Layer.MaskedCorners = (CoreAnimation.CACornerMask)5;
//in RightCornerRadiusFrameRenderer
Layer.MaskedCorners = (CoreAnimation.CACornerMask)10;