private void Viewport_PointerPressed_1(object sender, PointerRoutedEventArgs e)
 {
     // Pick control point
     var mp = GetMousePoint(e);
     PickedPoint = (from p in points
                    where p.X > mp.X - PointHitZoneSizeHalf && p.X < mp.X + PointHitZoneSizeHalf
                       && p.Y > mp.Y - PointHitZoneSizeHalf && p.Y < mp.Y + PointHitZoneSizeHalf
                    select p).FirstOrDefault();
     Draw();
 }
 private void Viewport_PointerReleased_1(object sender, PointerRoutedEventArgs e)
 {
     // Only add new control point if [DEL] wasn't pressed
     if (PickedPoint == null)
     {
         points.Add(GetMousePoint(e));
     }
     PickedPoint = null;
     Draw();
 }
 private void DrawPoint(ControlPoint p, Color color, int halfSizeOfPoint)
 {
     var x1 = p.X - halfSizeOfPoint;
     var y1 = p.Y - halfSizeOfPoint;
     var x2 = p.X + halfSizeOfPoint;
     var y2 = p.Y + halfSizeOfPoint;
     writeableBmp.DrawRectangle(x1, y1, x2, y2, color);
 }
 private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
    // Pick control point
    var mp = GetMousePoint(e);
    PickedPoint = (from p in points
                   where p.X > mp.X - PointSizeHalf && p.X < mp.X + PointSizeHalf
                      && p.Y > mp.Y - PointSizeHalf && p.Y < mp.Y + PointSizeHalf
                   select p).FirstOrDefault();
    Draw();
 }
 private void Image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
 {
    // Only add new control point is [DEL] wasn't pressed
    if (!isInDelete && PickedPoint == null)
    {
       points.Add(GetMousePoint(e));
    }
    PickedPoint = null;
    isInDelete = false;
    Draw();
 }
 private void RemovePickedPointPoint()
 {
    if (PickedPoint != null)
    {
       points.Remove(PickedPoint);
       PickedPoint = null;
       isInDelete = true;
       Draw();
    }
 }
 private void DrawPoint(ControlPoint p, Color color)
 { 
    var x1 = p.X - PointSizeHalf;
    var y1 = p.Y - PointSizeHalf;
    var x2 = p.X + PointSizeHalf;
    var y2 = p.Y + PointSizeHalf;
    writeableBmp.DrawRectangle(x1, y1, x2, y2, color);
 }