C# 更改禁用按钮上的文本颜色(自定义按钮渲染器)

C# 更改禁用按钮上的文本颜色(自定义按钮渲染器),c#,android,button,xamarin,colors,C#,Android,Button,Xamarin,Colors,我使用Xamarin.Forms,为Android创建自定义渲染器FlatButtonRenderer。我只想添加一个参数-禁用按钮上的白色文本颜色。有什么简单的方法?在启用按钮上,我可以在PCL项目中更改按钮.TextColor。如果使用c#代码禁用了更改文本颜色的方法 使用Xamarin.Forms.Platform.Android; 使用Xamarin.Forms; [程序集:导出渲染器(typeof(Button)、typeof(ugrid.Droid.FlatButtonRendere

我使用
Xamarin.Forms
,为Android创建自定义渲染器
FlatButtonRenderer
。我只想添加一个参数-禁用按钮上的白色文本颜色。有什么简单的方法?在启用按钮上,我可以在
PCL
项目中更改
按钮.TextColor
。如果使用c#代码禁用了更改文本颜色的方法

使用Xamarin.Forms.Platform.Android;
使用Xamarin.Forms;
[程序集:导出渲染器(typeof(Button)、typeof(ugrid.Droid.FlatButtonRenderer))]
名称空间myProject.Droid
{
公共类FlatButtonRenderer:ButtonRenderer
{
受保护的覆盖void OnDraw(Android.Graphics.Canvas画布)
{
底座.OnDraw(帆布);
}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
}
}
}

这听起来您最好使用带有触发器的样式,而不是自定义渲染器。禁用时将背景更改为红色的按钮示例如下所示:

    <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>

如果需要,这也可以在代码隐藏中完成。如果该样式在其他地方使用,您可能希望将其添加到资源中并引用它


如果只想为一个平台更改样式,请使用“OnPlatform”

,但我想保存所有参数样式。这种方式保存了所有?请重新措辞您的评论,它不会使唤醒想要保存按钮的标准动画。是吗?上面的代码不会改变任何现有的动画代码,但我必须创建自定义控件按钮渲染器,因为standart conrol button xamarin.forms在边框半径和宽度方面存在缺陷。如果有任何方法可以更改此渲染器中的文本禁用按钮,请使用自定义渲染器:
    <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>