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

问题描述 投票:0回答:5

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

谢谢

button xamarin.forms shadow
5个回答
19
投票

要删除 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"/>

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

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>

如果您需要更多帮助,请随时过来。


0
投票

有一个简单的技巧可以解决这个问题。只需将按钮包装在

Frame
元素中,并将
HasShadow
设置为
False

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

这将删除按钮的阴影😉


0
投票

您现在可以将视觉设置为默认值而不是材质,这为我解决了这个问题:

<Button 
Visual="Default"
/>
© www.soinside.com 2019 - 2024. All rights reserved.