C# Xamarin在自定义渲染器中添加单击事件
我正在使用以下拖放代码: 这非常有效,但现在我不仅希望能够拖放图像,还希望能够执行单击操作。在代码的这一部分中,该函数可能需要在自定义渲染器中完成:C# Xamarin在自定义渲染器中添加单击事件,c#,xamarin,xamarin.forms,xamarin.android,xamarin.ios,C#,Xamarin,Xamarin.forms,Xamarin.android,Xamarin.ios,我正在使用以下拖放代码: 这非常有效,但现在我不仅希望能够拖放图像,还希望能够执行单击操作。在代码的这一部分中,该函数可能需要在自定义渲染器中完成: public override bool OnTouchEvent(MotionEvent e) { float x = e.RawX; float y = e.RawY; var dragView = Element as DraggableView.DraggableView; switch (e.Action)
public override bool OnTouchEvent(MotionEvent e)
{
float x = e.RawX;
float y = e.RawY;
var dragView = Element as DraggableView.DraggableView;
switch (e.Action)
{
case MotionEventActions.Down:
if (dragView.DragMode == DragMode.Touch)
{
if (!touchedDown)
{
if (firstTime)
{
originalX = GetX();
originalY = GetY();
firstTime = false;
}
dragView.DragStarted();
}
touchedDown = true;
}
dX = x - this.GetX();
dY = y - this.GetY();
break;
case MotionEventActions.Move:
if (touchedDown)
{
if (dragView.DragDirection == DragDirectionType.All || dragView.DragDirection == DragDirectionType.Horizontal)
{
SetX(x - dX);
}
if (dragView.DragDirection == DragDirectionType.All || dragView.DragDirection == DragDirectionType.Vertical)
{
SetY(y - dY);
}
}
break;
case MotionEventActions.Up:
touchedDown = false;
dragView.DragEnded();
break;
case MotionEventActions.Cancel:
touchedDown = false;
break;
}
return base.OnTouchEvent(e);
}
但我不知道如何在不移动图像的情况下添加单击功能。
我只是想在点击图像时弹出一个窗口,当我按住它时仍然可以拖放。
有人能帮我吗?这里有很多很好的事情需要做,才能让它以一种真正好的方式工作,如果你希望这样,那么问题就需要解决了,因为这里不是其他人为你编写代码的网站 假设你对此没意见,我会给你一些基本的想法
关键是记录
touchedDown=true的DateTime
并将其与touchedDown=false的DateTime
进行比较代码>如果低于某个阈值,则称其为“单击”。如果您只是这样做,将会有一些工件,但您需要解决它们。谢谢,我并不是真的在寻找代码,而是像这样的想法。。。。你真的很有帮助!