我使用Xamarin.Forms
,我为Android创建自定义渲染器FlatButtonRenderer
。我想添加一个参数 - 禁用按钮上的白色文本颜色。有什么简单的方法呢?在启用按钮上,我可以更改Button.TextColor
项目中的PCL
。如果用c#代码修改禁用的文本颜色?
using Xamarin.Forms.Platform.Android;
using Xamarin.Forms;
[assembly: ExportRenderer(typeof(Button), typeof(ugrid.Droid.FlatButtonRenderer))]
namespace myProject.Droid
{
public class FlatButtonRenderer : ButtonRenderer
{
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
base.OnDraw(canvas);
}
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
}
}
}
答案 0 :(得分:3)
听起来你最好使用带触发器的样式而不是自定义渲染器。禁用时将背景更改为红色的示例如下所示:
<Button Command="{Binding Command}" Text="Blah Button">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger TargetType="Button" Property="IsEnabled" Value="False">
<Setter Property="BackgroundColor" Value="Red"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
如果需要,也可以在后面的代码中完成。如果在其他地方使用该样式,您可能希望将其添加到资源并引用它。
如果您只想为一个平台更改样式,请使用&#34; OnPlatform&#34;