Xamarin.Forms之Button

Posted 做一个清醒者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin.Forms之Button相关的知识,希望对你有一定的参考价值。

为什么要讲Button,不管是何种UI系统,Button始终是一种很最常见的控件,但是Forms中得Button在使用的过程是出现了一些问题,特此记录一下

1.IsEnabled属性

 即使设置了Button得背景色,当IsEnabled="false"的时候,背景色会变成灰色,文字也是会变成灰色

 

2.IsEnable属性无效的问题

的确有人遇到过这个问题,直接设置IsEnabled="false",Button居然该是可以点击,这就是一个BUG,截止到v2.2版本,Forms依旧没有解决

改问题的原因是Command与IsEnabled冲突导致的,如果在Xaml中Command放在IsEnabled的后面,则会出现上面的问题

<Button  Grid.Column="2" Text="点我" IsEnabled="{Binding signIsEnabled}"  Command="{Binding SignMessage}"  Style="{StaticResource DialogButtonStyle}"/>

 

目前有两种解决方法:

1).在Command中,设置CanExecute直接返回绑定的signIsEnabled,

new Command(()=>{},()=>isSignEnabled);

这样在isSignEnabled直接设置为false的时候,也是有效的

2).在XAML中,将IsEnabled放在Command的后面,就一切OK了

<Button  Grid.Column="2" Text="点我"   Command="{Binding SignMessage}"   IsEnabled="{Binding signIsEnabled}"   Style="{StaticResource DialogButtonStyle}"/>

  

以上是关于Xamarin.Forms之Button的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms 监听Button的按下释放事件

Xamarin.Forms Android改变Button Image的颜色

我们可以覆盖 Xamarin.forms 中的 NAVIGATION BACK BUTTON 按下吗?

xamarin forms中的Button文本默认大写

Xamarin.Forms XAML的辅助功能Code Snippet

Xamarin.Forms TapGestureRecognizer 实现点击事件