Как в xamarin сделать тень в верхней части Frame?
Мне необходимо создать Frame с тенью, находящейся над ним (свеху, а не снизу) У меня есть класс CustomFrame (в основном проекте) и класс CustomFrameRenderer (в проекте андроид)
CustomFrame.cs
namespace Project.Custom
{
public sealed class CustomFrame : Frame
{
public readonly BindableProperty elevationProperty =
BindableProperty.Create(nameof(Elevation), typeof(float), typeof(CustomFrame), 1.0f);
public float Elevation
{
get
{
return (float)GetValue(elevationProperty);
}
set
{
SetValue(elevationProperty, value);
}
}
}
}
CustomFrameRenderer.cs
[assembly: ExportRenderer(typeof(CustomFrame), typeof(CustomFrameRenderer))]
namespace Project.Renderer
{
public class CustomFrameRenderer : Xamarin.Forms.Platform.Android.AppCompat.FrameRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
UpdateElevation();
/// Другие свойства...
}
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
Control.StateListAnimator = new Android.Animation.StateListAnimator();
switch (e.PropertyName)
{
case "Elevation":
UpdateElevation();
break;
/// Другие свойства...
}
}
private void UpdateElevation()
{
CustomFrame customFrame = (CustomFrame)Element;
ViewCompat.SetElevation(this, customFrame.Elevation);
ViewCompat.SetElevation(Control, customFrame.Elevation);
}
}
}
На странице приложения добавляю CustomFrame. Таким образом я создаю тень нужного мне размера. Но она находится в нижней части фрейма. Нужно чтобы она была сверху. А вот как это сделать - вопрос. Пробовал повернуть фрейм на 180 градусов по оси X, но ожидаемо тень пропала вообще. Так и не знаю, как перенести тень на верх. Помогите пожалуйста.