2017-04-08 369 views
0

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

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

使用自定义渲染:https://stackoverflow.com/a/49193488/1039935 – Arvis

回答

2

这听起来像你会更好地使用具有触发器而不是自定义渲染器的样式。一个按钮的变化的背景为红色残疾的例子看起来是这样的:

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

+0

但我想保存所有paramerts风格。这样保存了所有? –

+0

请重新评论你的评论,这没有意义 –

+0

我想保存按钮的标准动画。会是? –