【发布时间】:2017-08-19 05:41:24
【问题描述】:
我需要一个可以同时响应单击/点击和双击/点击的控件。我发现如果我想同时处理单击和双击/点击,我就不能使用 TapGestureRecognizer。所以,我正在尝试扩展一个 Label 控件,添加一个 Click 事件处理程序。我尝试了以下代码,但事件没有触发。有什么建议?谢谢!
in LabelClickable.cs:
...
public class LabelClickable : Label
{
public event EventHandler Clicked;
public virtual void OnClicked()
{
Clicked?.Invoke(this, EventArgs.Empty);
}
}
...
in MainPage.XAML:
...
<local:LabelClickable Text="0" Clicked="Button_Clicked"/>
...
and in MainPage.Xaml.cs:
...
private void Button_Clicked(object sender, EventArgs e)
{
//do something;
}
...
【问题讨论】:
-
不应该是TGR Taped 事件处理程序吗?此外,我在代码中添加 TGR 比 XAML 更成功。
-
对不起,我不知道 TGR 是什么意思。此外,我试图扩展的 Forms.Label 控件没有“点击”事件。如果我成功添加它,那么它将完全是扩展控件上的一个新事件,所以我想那个事件的名称是什么并不重要?我还尝试在代码中挂钩事件处理程序但没有成功。
-
除此之外,我可以看到正在创建的扩展控件(我在构造函数中放置了一个断点),并且在主页上我可以使用 FindByName 获取扩展控件。一切似乎都正常,代码编译运行,只是事件没有触发。
-
对不起,在我的手机上。 TGR 我指的是 TapGestureRecognizer。从您的问题来看,您似乎打算使用 TapGestureRecognizer 以便扩展控件可以识别单击或双击。我会尽快在这里挖掘一些代码。
标签: c# event-handling xamarin.forms extend