在Xamarin Forms中点击事件后是否可以清除/删除TapGestureRecognizer?

时间:2017-12-06 02:24:51

标签: xamarin.forms

我尝试将此Image应用为ImageButton。然后我想在Tapped / Clicked事件后禁用它。顺便说一句,我遇到了一些问题,我无法在Tapped事件中清除/删除GestureRecognizers。

这是我的代码:

Image img = new Image { HorizontalOptions = LayoutOptions.End, VerticalOptions = LayoutOptions.End, Source = ImageSource.FromResource("Ns.ico.png") };

var tapImg = new TapGestureRecognizer();

tapImg.Tapped += (object sender, EventArgs e) =>
{     
     img.Source = ImageSource.FromResource("Ns.ico_disable.png");
     img.GestureRecognizers.Clear; //<--- this line is problem
};

img.GestureRecognizers.Add(tapImg);

我该如何解决这个问题,但仍然有同样的目的?

1 个答案:

答案 0 :(得分:3)

清除是一种方法调用,因此您的代码应为img.GestureRecognizers.Clear();

或者你可以制作一个Tapped方法并在点击时取消订阅

tapImg.Tapped += Gesture_Tapped;

void Gesture_Tapped(object sender, EventArgs e)
{
    tapImg.Tapped -= Gesture_Tapped;
}