Xamarin形式框架阴影设计

NPadrutt

我有一个带有列表的Xamarin内容页面。对于ListItems,我想要类似于Android中的cardview的东西。

在此处输入图片说明

基于我发现可以通过框架完成的工作。我有以下代码:

<ViewCell>
    <StackLayout Padding="8" >
        <controls:CardView HasShadow="True" OutlineColor="LightGray">
            <StackLayout Orientation="Vertical" Padding="5">
                // Some labels and Buttons                
            </StackLayout>
        </Frame>
    </StackLayout>
</ViewCell>

CardView具有以下代码:

public class CardView : Frame
{
    public CardView()
    {
        Padding = 0;
        if (Device.RuntimePlatform == Device.iOS)
        {
            HasShadow = false;
            OutlineColor = Color.Transparent;
            BackgroundColor = Color.Transparent;
        }
    }
}

结果是这样的:

在此处输入图片说明

这看起来更像是一个边框,而不是这张卡的悬浮效果。上面的示例实际上使用相同的cardview控件,没有任何样式(即使没有OutlineColor)。我会错过必须配置的选项吗?或者我如何获得与样本相同的结果?

Xamarin.Forms版本:2.5.0.280555

保罗·克彻

我已经实现了非常相似的东西(也可以Frame作为卡片显示在堆栈视图中)。不幸的是,我不能共享确切的代码,因为不是我拥有它,而是我的老板,但是我可以告诉您如何实现。

我添加了一个属性ShadowRadius,以CardView创造一个自定义渲染,源自Xamarin.Forms.Platform.Android.AppCompat.FrameRenderer在渲染器中,我设置Elevation渲染器的

protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
{
    /* ... */

    this.Elevation = ((CardView)e.NewElement).ShadowRadius;
}

我的卡片在Xamarin.Forms 2.5.0.280555中显示了一个不错的高程阴影。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章