741,70 → 741,10 |
Application.Current.Shutdown(); |
} |
|
#region doubletap/click //http://stackoverflow.com/questions/9001023/capturing-double-tap-touch-on-multi-touch-screen |
private Point? _lastTapLocation; |
private readonly Stopwatch _doubleTapStopwatch = new Stopwatch(); |
|
private bool IsDoubleTap(TouchEventArgs e) |
{ |
Point currentTapPosition = e.GetTouchPoint(this).Position; |
bool tapsAreCloseInDistance = false; |
if (_lastTapLocation != null) |
{ |
tapsAreCloseInDistance = GetDistanceBetweenPoints(currentTapPosition, (Point)_lastTapLocation) < 70; |
} |
_lastTapLocation = currentTapPosition; |
|
TimeSpan elapsed = _doubleTapStopwatch.Elapsed; |
_doubleTapStopwatch.Restart(); |
bool tapsAreCloseInTime = (elapsed != TimeSpan.Zero && elapsed < TimeSpan.FromSeconds(0.4)); |
|
if (tapsAreCloseInTime && tapsAreCloseInDistance) |
{ |
_lastTapLocation = null; |
} |
return tapsAreCloseInDistance && tapsAreCloseInTime; |
} |
|
private void OnPreviewTouchDown(object sender, TouchEventArgs e) |
{ |
if (IsDoubleTap(e)) |
{ |
MainMap.CanDragMap = false; |
MessageBox.Show("Blubb!"); |
} |
} |
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 IsDoubleClick(MouseButtonEventArgs e) |
{ |
Point currentTapPosition = e.GetPosition(this); |
bool tapsAreCloseInDistance = false; |
if (_lastTapLocation != null) |
{ |
tapsAreCloseInDistance = GetDistanceBetweenPoints(currentTapPosition, (Point)_lastTapLocation) < 70; |
} |
_lastTapLocation = currentTapPosition; |
|
TimeSpan elapsed = _doubleTapStopwatch.Elapsed; |
_doubleTapStopwatch.Restart(); |
bool tapsAreCloseInTime = (elapsed != TimeSpan.Zero && elapsed < TimeSpan.FromSeconds(0.4)); |
|
if (tapsAreCloseInTime && tapsAreCloseInDistance) |
{ |
_lastTapLocation = null; |
} |
return tapsAreCloseInDistance && tapsAreCloseInTime; |
} |
Point pWPAdd; |
private void GridGMapControl_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) |
{ |
if (IsDoubleClick(e)) |
if(e.ClickCount == 2) |
{ |
pWPAdd = new Point(e.GetPosition(this).X, e.GetPosition(this).Y); |
canvasAddPoint.Margin = new Thickness(e.GetPosition(this).X, e.GetPosition(this).Y, canvasAddPoint.Margin.Left, canvasAddPoint.Margin.Bottom); |
853,7 → 793,6 |
} |
} |
|
#endregion doubletap/click |
#endregion events |
|
#region GMap |