Xamarin Forms:如何为图像添加单击和双击?
Posted
技术标签:
【中文标题】Xamarin Forms:如何为图像添加单击和双击?【英文标题】:Xamarin Forms: How to add single and double tap for an image? 【发布时间】:2021-08-16 11:21:53 【问题描述】:我正在尝试实现一个键盘 UI。在键盘中,+(plus) 和 0(zero) 选项放置在单个图像图标上。所以我需要在 UI 上显示 0 进行单击,而双击我需要在 UI 上显示 +。
我的代码
<Image
Grid.Column="1"
Source="ic_zero_xx.png"
Style="StaticResource KeypadImageStyle">
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="ZeroTapped"
NumberOfTapsRequired="1">
</TapGestureRecognizer>
</Image.GestureRecognizers>
</Image>
private void ZeroTapped(object sender, EventArgs e)
phonenumber_label.Text = "0";
如何在一张图片上同时提及 2 个不同的点按?
【问题讨论】:
【参考方案1】:我们可以在该图像上添加两个TapGestureRecognizer
,一个用于单击,另一个用于双击。
xaml
<Image >
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Single" NumberOfTapsRequired="1"/>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Double" NumberOfTapsRequired="2"/>
</Image.GestureRecognizers>
</Image>
后面的代码
private void TapGestureRecognizer_Single(object sender, EventArgs e)
label.Text = "0";
private void TapGestureRecognizer_Double(object sender, EventArgs e)
label.Text = "+";
【讨论】:
【参考方案2】:我认为你可以使用计时器如果用户在 150 毫秒内点击两次,那么它就是双击。
int Tapped=0;
private void ZeroTapped(object sender,EventArgs e)
if(Tapped==0)
Device.StartTime(TimeSpan.FromMillSeconds(150),()=>
if(Tapped=1)
//1 tap.
else
//double tap.
Tapped=0;
return false;
else
Tapped++;
【讨论】:
我在这方面缺少什么? @SreejithSree 抱歉,我忘记了一些代码,现在更新它。以上是关于Xamarin Forms:如何为图像添加单击和双击?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Xamarin Forms 应用程序创建 Nuget 包
Xamarin Forms:如何为自定义字体设置 FontAttributes Bold
我们如何处理 Xamarin Forms Picker 的完成按钮单击事件?
在 Xamarin Forms 的 Telerik ListView 中,如何处理 Windows 上元素的右键单击事件?