【发布时间】:2020-11-24 03:07:20
【问题描述】:
我正在尝试为 iOS 和 Android 自定义 ListView 元素的阴影效果,但我尝试的一切都没有效果。
这是我在 ListView 中使用的 DataTemplate:
<DataTemplate x:Key="greenProductTemplate">
<ViewCell>
<customcontrols:CustomFrame
Margin="10"
Padding="10"
CornerRadius="6">
这是我的自定义渲染器:
[assembly: ExportRenderer(typeof(Frame), typeof(CustomFrameRenderer))]
namespace Prods.iOS
{
class CustomFrameRenderer: FrameRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
{
base.OnElementChanged(e);
if (Element != null)
{
if (Element.HasShadow)
{
this.Layer.ShadowRadius = 2.0f;
this.Layer.ShadowColor = UIColor.Gray.CGColor;
this.Layer.ShadowOffset = new CGSize(2, 2);
this.Layer.ShadowOpacity = 0.20f;
this.Layer.ShadowPath = UIBezierPath.FromRect(Layer.Bounds).CGPath;
this.Layer.MasksToBounds = false;
}
}
}
}
}
我以多种方式更改渲染,我可以在网上找到所有内容,但没有任何东西改变初始阴影。
【问题讨论】:
-
可以吗?
-
我最终使用了第三方库,因为似乎没有任何效果。 redcorners.com/forms
标签: listview xamarin xamarin.forms custom-renderer