使用.NETStandard 2.0的Xamarin Forms中的色调大小不正确

Geo*_*mas 10 android xamarin.forms androiddesignsupport

我用.NET Standard 2.0创建了一个新的xamarin表单项目,在示例中我将标签更改为Button并添加了背景颜色.单击按钮时,波纹动画显示较小并集中在左上角,而不是整个按钮的宽度和高度

<Button Text="Welcome to Xamarin.Forms!" HorizontalOptions="Center" 
   VerticalOptions="CenterAndExpand" BackgroundColor="Lime"  />
Run Code Online (Sandbox Code Playgroud)

我们需要做些什么来使波纹动画正确.

请参阅附图.

在此输入图像描述

Pra*_*bey 2

如果你想删除多余的色调动画部分。然后你必须在Android平台上为Button编写自定义渲染类。请检查示例代码

    assembly: ExportRenderer(typeof(TintableButton), typeof(TintableButtonRenderer))]
namespace XamTest.Droid.Renderers
{
    public class TintableButtonRenderer : ButtonRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
        {
            base.OnElementChanged(e);

            var control = e.NewElement as TintableButton;
            if (control != null)
            {
                if (control.TintColor != Xamarin.Forms.Color.Default)
                {
                    var androidColor = control.TintColor.ToAndroid();
                    Control.Background.SetColorFilter(androidColor, PorterDuff.Mode.Src);
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在 UI 中调用此自定义控件。

 <Grid>
    <controls:TintableButton Text="Test" HorizontalOptions="FillAndExpand" />
   </Grid>
Run Code Online (Sandbox Code Playgroud)