Удаление тени с кнопки android, встроенной в формы xamarin

Я пытаюсь избавиться от тени, которая отображается в нижней части кнопки в Android, созданной с использованием форм xamarin. Я испробовал все, что мог. Но я этого не добился. Я приложил изображение для справки. Прошу вас помочь мне и избавить меня от страданий. заранее спасибо

enter image description here

Отвечает ли это на ваш вопрос? Как удалить тень кнопки в Xamarin Forms

Rizan Zaky 10.04.2020 17:03
0
1
876
3

Ответы 3

[assembly: ExportRenderer(typeof(Button),typeof(FlatButtonRenderer))]

namespace Project.Droid

 {
        public class FlatButtonRenderer : ButtonRenderer
        {
            protected override void OnDraw(Android.Graphics.Canvas canvas)
            {
                base.OnDraw(canvas);
            }
        }
    }

<Button BackgroundColor="Transparent" Text="ClickMe"/>

Источник: https://stackoverflow.com/a/39966574/7794690

Я не хочу, чтобы цвет фона был прозрачным. Он должен быть белым на синем фоне.

Swapnil Khandode 11.04.2018 12:55

1) Создайте настраиваемый элемент управления и получите его от Button.

   public class ButtonWithoutShadow : Button
 {
 }

2) Создайте собственный рендерер

 [assembly: ExportRenderer(typeof(ButtonWithoutShadow), typeof(ButtonWithoutShadowRenderer))]
public class ButtonWithoutShadowRenderer : ButtonRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
    {
        base.OnElementChanged(e);

        if (Control != null)
        {
            Control.Elevation = 0;
        }

    }
}

3) На странице xaml используйте эту кнопку:

<controls:ButtonWithoutShadow TextColor="White" HorizontalOptions="Center" WidthRequest="185" HeightRequest="52" BackgroundColor="#ffcd00" Font="Roboto-Regular" FontSize="23" Text="Поиск" BorderRadius="0" BorderWidth="0" />

В качестве альтернативы, если вы хотите, чтобы каждый Button в вашем проекте не имел тени, отметьте свой пользовательский рендерер как таковой: [assembly: ExportRenderer(typeof(Button), typeof(ButtonWithoutShadowRenderer))]

Nick Tiberi 11.07.2019 15:37

Для меня единственное, что удаляло тень, делало это в пользовательском рендере кнопки:

Control.StateListAnimator = null;

Однако это может зависеть от уровня API, поэтому также может потребоваться:

Control.Elevation = 0;

Другие вопросы по теме