带有.NETStandard 2.0的Xamarin Forms中的色彩大小不正确

时间:2018-07-31 11:11:44

标签: android xamarin.forms androiddesignsupport

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

<Button Text="Welcome to Xamarin.Forms!" HorizontalOptions="Center" 
   VerticalOptions="CenterAndExpand" BackgroundColor="Lime"  />

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

请参阅所附图片。

enter image description here

1 个答案:

答案 0 :(得分:2)

如果要删除多余的色调动画部分。然后,您必须在Android platfrom中为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);
                }
            }
        }
    }
}

在用户界面中调用此自定义控件。

 <Grid>
    <controls:TintableButton Text="Test" HorizontalOptions="FillAndExpand" />
   </Grid>