Мне нужно сделать double click using touch down event
в WPF
(Двойной щелчок) Событие Touch Down в WPF?
как двойной щелчок мышью вниз событие.
if (e.ClickCount == 2) ;
Любое предложение?
Мне нужно сделать double click using touch down event
в WPF
(Двойной щелчок) Событие Touch Down в WPF?
как двойной щелчок мышью вниз событие.
if (e.ClickCount == 2) ;
Любое предложение?
Я нашел решение
private readonly Stopwatch _doubleTapStopwatch = new Stopwatch();
private Point _lastTapLocation;
public static double GetDistanceBetweenPoints(Point p, Point q)
{
double a = p.X - q.X;
double b = p.Y - q.Y;
double distance = Math.Sqrt(a * a + b * b);
return distance;
}
private bool IsDoubleTap(TouchEventArgs e)
{
Point currentTapPosition = e.GetTouchPoint(this).Position;
bool tapsAreCloseInDistance = GetDistanceBetweenPoints(currentTapPosition, _lastTapLocation) < 40;
_lastTapLocation = currentTapPosition;
TimeSpan elapsed = _doubleTapStopwatch.Elapsed;
_doubleTapStopwatch.Restart();
bool tapsAreCloseInTime = (elapsed != TimeSpan.Zero && elapsed < TimeSpan.FromSeconds(0.7));
return tapsAreCloseInDistance && tapsAreCloseInTime;
}
private void Close_OnTouchDown(object sender, TouchEventArgs e)
{
if(IsDoubleTap(e))
//Do somthing;
}
Refrence Link
Вместо жесткого кодирования расстояние значение, которое вы используете, чтобы проверить, насколько закрыты краны, и продолжительность между метками, вы должны использовать 'SystemInformation.DoubleClickTime' и' SystemInformation.DoubleClickSize'. Дополнительная информация доступна на [MSDN] (https://msdn.microsoft.com/en-us/library/system.windows.forms.systeminformation.doubleclicktime (v = vs.110) .aspx) – Craig
, если вы не возражаете Rx/system.reactive http://stackoverflow.com/a/23716344/3225 – kenny