【发布时间】:2018-04-09 09:56:54
【问题描述】:
当按钮被禁用时,我需要更改按钮的文本颜色,我为 iOS 和 Android 创建了一个自定义渲染器。 iOS完美运行,由于android没有改变颜色,我也通过样式创建了触发器,也没有解决。
如何为 Xamarin.Forms 进行颜色交换?
Android 渲染器:
[assembly: ExportRenderer(typeof(Button), typeof(MyButtonRenderer))]
namespace xxxxxx.Droid.Renderers
{
public class MyButtonRenderer : ButtonRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (Control != null)
Control.SetTextColor(Color.White.ToAndroid());
if (e != null)
{
e.NewElement.TextColor = Color.White;
e.OldElement.TextColor = Color.White;
}
}
}
}
此状态更改根据我的命令的 CanExecute 进行更改,这将是应用的默认样式。
这两种方法都不能解决
【问题讨论】:
-
您可以使用自定义 Xamarin 表单组件来执行此操作,在此处查看操作方法:stackoverflow.com/a/70775829/6846888
标签: c# xamarin xamarin.forms xamarin.android