我以前使用Xamarin.Forms的Frame控件作为Android的CardView,但我将Xamarin.Forms包更新为3.1.0版,并且框架外观已更改。它没有高程和阴影。我试图创建一个自定义渲染器,但是不起作用。
要解释我想说的话,请参见下面的图片。第一张图片是框架的旧行为。外观与Android中的CardView完全相同,第二张图片是Xamarin.Forms版本3.1.0的新行为。框架没有高程和阴影。
旧行为:
新行为
这是我使用框架的代码(对于Android平台,CardView是一个简单的框架)
<customViews:CardView>
<StackLayout Spacing="0">
<StackLayout.Margin>
<OnPlatform x:TypeArguments="Thickness" Android="16"/>
</StackLayout.Margin>
<ContentView>
<OnPlatform x:TypeArguments="View">
<OnPlatform.iOS>
<customViews:HeaderDivider/>
</OnPlatform.iOS>
</OnPlatform>
</ContentView>
public class CardView : Frame
{
public CardView()
{
Padding = 0;
if (Device.RuntimePlatform == Device.iOS)
{
HasShadow = false;
OutlineColor = Color.Transparent;
BackgroundColor = Color.Transparent;
}
}
}
答案 0 :(得分:0)
<Frame HasShadow="true">
<Label Text="Test"/
</Frame>
我猜想在Frame中HasShadow的Update默认值设置为false之后;