Android 创建自定义按钮渲染器时覆盖转换错误

Android 创建自定义按钮渲染器时覆盖转换错误,android,xamarin,xamarin.forms,Android,Xamarin,Xamarin.forms,我试图覆盖Xamarin表单中Android按钮呈现器的默认行为。我利用了(不是偷来的;)源代码,并创建了以下内容: namespace Patron.Droid.Renderers { public class MixedCaseButtonRenderer : Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer { public MixedCaseButtonRenderer(Context cont

我试图覆盖Xamarin表单中Android按钮呈现器的默认行为。我利用了(不是偷来的;)源代码,并创建了以下内容:

namespace Patron.Droid.Renderers
{
    public class MixedCaseButtonRenderer : Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer
    {
        public MixedCaseButtonRenderer(Context context) : base(context)
        {
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Button> el)
        {
            base.OnElementChanged(el);

            if (el.OldElement != null)
            {
                // Cleanup
            }

            if (el.NewElement != null)
            {
                var button = (Button)this.Control;
                button.SetAllCaps(false);
            }
        }
    }
}
名称空间用户.Droid.Renderers
{
公共类MixedCaseButtonRenderer:Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer
{
public MixedCaseButonRenderer(上下文):基础(上下文)
{
}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs el)
{
基础。一个元素改变(el);
if(el.OldElement!=null)
{
//清理
}
if(el.NewElement!=null)
{
var button=(button)this.Control;
按钮。设置所有上限(错误);
}
}
}
}
但是当我构建它时,我会得到以下错误

Severity    Code    Description Project File    Line    Suppression State
Error   CS0115  'MixedCaseButtonRenderer.OnElementChanged(ElementChangedEventArgs<Button>)': no suitable method found to override   Patron.Android  C:\Users\ThomH\workspace\patron\Patron\Patron\Patron.Android\Renderers\MixedCaseButtonRenderer.cs   22  Active
Error   CS0311  The type 'Android.Widget.Button' cannot be used as type parameter 'TElement' in the generic type or method 'ElementChangedEventArgs<TElement>'. There is no implicit reference conversion from 'Android.Widget.Button' to 'Xamarin.Forms.Element'.  Patron.Android  C:\Users\ThomH\workspace\patron\Patron\Patron\Patron.Android\Renderers\MixedCaseButtonRenderer.cs   22  Active
Error   CS1503  Argument 1: cannot convert from 'Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Android.Widget.Button>' to 'Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Xamarin.Forms.Button>'   Patron.Android  C:\Users\ThomH\workspace\patron\Patron\Patron\Patron.Android\Renderers\MixedCaseButtonRenderer.cs
严重性代码描述项目文件行抑制状态
错误CS0115“MixedCaseButonRenderer.OneElementChanged(ElementChangedEventArgs)”:未找到覆盖用户的合适方法。Android C:\Users\ThomH\workspace\Patron\Patron\Patron\Patron\Patron.Android\Renderers\MixedCaseButonRenderer.cs 22处于活动状态
错误CS0311类型“Android.Widget.Button”不能用作泛型类型或方法“ElementChangedEventArgs”中的类型参数“TElement”。没有从“Android.Widget.Button”到“Xamarin.Forms.Element”的隐式引用转换。用户.Android C:\Users\ThomH\workspace\Patron\Patron\Patron\Patron.Android\renders\MixedCaseButtonRenderer.cs 22处于活动状态
错误CS1503参数1:无法从'Xamarin.Forms.Platform.Android.ElementChangedEventArgs'转换为'Xamarin.Forms.Platform.Android.ElementChangedEventArgs'用户.Android C:\Users\ThomH\workspace\Patron\Patron\Patron\Patron.Android\Renderers\MixedCaseButonRenderer.cs

按钮
存在于
Android.Widget
Xamarin.Forms
中。您需要指定要使用的名称空间