Edu_LG
Edu_LG

Reputation: 1750

How to remove the shadow of a button on Xamarin Forms

is it possible? I would like to remove the shadow of the buttons on Xamarin Forms.

Thanks

Upvotes: 5

Views: 11217

Answers (5)

ReverseEngineer
ReverseEngineer

Reputation: 11

You can now just set the Visual to Default instead of Material and that fixed it for me:

<Button 
Visual="Default"
/>

Upvotes: 1

Rizan Zaky
Rizan Zaky

Reputation: 4692

There's a simple hack around this. Simply wrap the button in a Frame element, with HasShadow set to False

<Frame HasShadow="False" Padding="0" Margin="0">
    <Button Padding="15"
            Text="Log in"
            TextColor="Blue"
            FontSize="17" />
</Frame>

This will remove the button's shadow 😉

Upvotes: 0

Aditya Deshpande
Aditya Deshpande

Reputation: 131

@Tonatio in your renderer instead of using

[assembly: ExportRenderer(typeof(Xamarin.Forms.Button), typeof(FlatButtonRenderer))]

use this

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

you will have to make a CustomButton control that inherits from Xamarin.Forms.Button and then use that custom button in your xaml instead of regular button. that should do the thing

     //Add references to your custom control
        xmlns:controls="clr-namespace:YourNameSpace.Controls"
     //Use control
     <Grid>
           <controls:YourCustomButton x:Name="_customButton"/>
     </Grid>

Feel free to drop by if you need some more help.

Upvotes: 1

JD - DC TECH
JD - DC TECH

Reputation: 1203

Explaining with more detail.

using Android.App;
using Android.Content.PM;
using Android.OS;
using Xamarin.Forms.Platform.Android;
using ProjectName.Droid;
using Xamarin.Forms;

[assembly: ExportRenderer(typeof(Xamarin.Forms.Button), typeof(FlatButtonRenderer))]
namespace ProjectName.Droid
{    
    public class FlatButtonRenderer : ButtonRenderer
    {
        protected override void OnDraw(Android.Graphics.Canvas canvas)
        {
            base.OnDraw(canvas);
        }
    }
}

Upvotes: 6

Matthieu Lemonnier
Matthieu Lemonnier

Reputation: 312

For delete shadow on button Android you just need create a renderer in project Droid and set BackroundColor with transparent or other color.

For a project using PCL :

[assembly: ExportRenderer(typeof(Button),typeof(FlatButtonRenderer))]
namespace Project.Droid
    {
        public class FlatButtonRenderer : ButtonRenderer
        {
            protected override void OnDraw(Android.Graphics.Canvas canvas)
            {
                base.OnDraw(canvas);
            }
        }
    }

In XAML :

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

Upvotes: 19

Related Questions