Button 为什么我的自定义渲染器不工作?

Button 为什么我的自定义渲染器不工作?,button,xamarin,xamarin.forms,custom-renderer,Button,Xamarin,Xamarin.forms,Custom Renderer,我在Droid项目中有以下课程: 使用MyProject.Droid; 使用Xamarin.Forms.Platform.Android; [assembly:Xamarin.Forms.ExportRenderer(typeof(Android.Widget.Button)、typeof(ArrowButtonRenderer))] 名称空间MyProject.Droid { 公共类ArrowButtonRenderer:Xamarin.Forms.Platform.Android.Butto

我在Droid项目中有以下课程:

使用MyProject.Droid;
使用Xamarin.Forms.Platform.Android;
[assembly:Xamarin.Forms.ExportRenderer(typeof(Android.Widget.Button)、typeof(ArrowButtonRenderer))]
名称空间MyProject.Droid
{
公共类ArrowButtonRenderer:Xamarin.Forms.Platform.Android.ButtonRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
var btn=this.Control as Android.Widget.Button;
SetBackgroundColor(全局::Android.Graphics.Color.Green);
}
}
}
我知道,更改按钮颜色不需要自定义渲染器,但我只想尝试一下:)

干杯

编辑:下面是关于如何将按钮添加到UI的代码:

MyStackLayout.Children.Add(新建按钮
{
Text=“我的按钮文本”
});
以及通过xaml的一些按钮:


经过广泛的交谈并查看您的资料来源,我发现PCL安装了2.3.1.114版的Xamarin.Forms

您的Droid项目安装了1.5.x版,所以它要旧得多

现在,下一部分将很棘手,您需要为Android更新您的Xamarin.Forms包。但是,如果您首先更新Xamarin.Android.Support.*包,您将收到一个错误,说明您无法更新Xamarin.Forms,因为找不到匹配版本的表单


因为Android的Xamarin.Forms严重依赖于支持包,所以它们链接到特定的版本,但并不总是同步的。截至目前,Xamarin.Forms版本(2.3.2.127)似乎缺少相应的Android支持包。因此,不要升级到该版本,请升级到与PCL相同的版本,即2.3.1.114。然后Android软件包将更新到23.3.0,一切都会很好地工作。

尝试将此
typeof(Android.Widget.Button)
更改为Xamarin表单按钮,因此
typeof(Xamarin.Forms.Button)
不起作用,按钮的颜色仍然与我的风格/主题相同:(当你把一个断点放在那里时,它会被击中吗?我本可以早点尝试的,对不起……但是没有,断点(在base.OnElementChanged(e);)不会被击中):/我必须在Xamarin Portable项目中添加更多的东西吗?我是通过C#添加按钮的。