Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
移除Xamarin表单中内置的Android按钮的阴影_Android_Xamarin.forms - Fatal编程技术网

移除Xamarin表单中内置的Android按钮的阴影

移除Xamarin表单中内置的Android按钮的阴影,android,xamarin.forms,Android,Xamarin.forms,我正试图消除显示在使用xamarin表单构建的android按钮底部的阴影。我已经尽力了。但我还没有做到。 我附上了一张图片供参考。 我请求你的帮助,让我摆脱痛苦。 提前谢谢 [assembly: ExportRenderer(typeof(Button),typeof(FlatButtonRenderer))] namespace Project.Droid { public class FlatButtonRenderer : ButtonRenderer

我正试图消除显示在使用xamarin表单构建的android按钮底部的阴影。我已经尽力了。但我还没有做到。 我附上了一张图片供参考。 我请求你的帮助,让我摆脱痛苦。 提前谢谢

[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"/>

[程序集:导出渲染器(类型化(按钮)、类型化(扁平按钮渲染器))]
名称空间项目.Droid
{
公共类FlatButtonRenderer:ButtonRenderer
{
受保护的覆盖void OnDraw(Android.Graphics.Canvas画布)
{
底座.OnDraw(帆布);
}
}
}
来源:

1)创建自定义控件并从按钮派生它

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

    }
}
[程序集:导出渲染器(typeof(ButtonWithoutShadow)、typeof(ButtonWithoutShadowRenderer))]
公共类ButtonWithoutShadowRenderer:ButtonRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(控件!=null)
{
控制高程=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" />

对我来说,唯一去除阴影的方法是在自定义按钮渲染中执行此操作:

Control.StateListAnimator = null;
但这可能取决于API级别,因此可能还需要:

Control.Elevation = 0;

我不希望背景颜色是透明的。它必须是蓝色背景上的白色。或者,如果您希望项目中的每个
按钮
都没有阴影,请将自定义渲染器标记为:
[assembly:ExportRenderer(typeof(Button),typeof(ButtonWithoutShadowRenderer))
这是否回答了您的问题?