如何删除Xamarin Forms上按钮的阴影

时间:2016-07-20 10:21:00

标签: button xamarin.forms shadow

有可能吗? 我想删除Xamarin Forms上按钮的阴影。

由于

4 个答案:

答案 0 :(得分:18)

对于按钮Android上的删除阴影,您只需在项目Droid中创建渲染器,并使用透明或其他颜色设置BackroundColor。

对于使用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);
            }
        }
    }

在XAML中:

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

答案 1 :(得分:6)

详细解释。

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);
        }
    }
}

答案 2 :(得分:1)

@Tonatio在渲染器中而不是使用

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

使用此

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

您必须创建一个继承自 Xamarin.Forms.Button 的CustomButton控件,然后在xaml中使用该自定义按钮而不是常规按钮。应该做的事情

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

如果您需要更多帮助,请随意前来。

答案 3 :(得分:0)

对此有一个简单的破解方法。只需将按钮包装在Frame元素中,并将HasShadow设置为False

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

这将删除按钮的阴影?