Ejemplo n.º 1
0
 private void CellCanvas_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     if (!_isDrawing)
     {
         CellCanvas.CaptureMouse();
         CellCanvas.MouseMove += CellCanvas_PreviewMouseMove;
         CellCanvas.PreviewMouseRightButtonDown += CellCanvas_PreviewMouseRightButtonDown;
         TestPolyline.Points.Clear();
         TestPolygon.Points.Clear();
         CellCanvas.Children.Clear();
         _isDrawing = true;
         if (LineRadioButton.IsChecked == true)
         {
             TestPolyline.Points.Add(e.GetPosition(CellCanvas));
         }
         else
         {
             TestPolygon.Points.Add(e.GetPosition(CellCanvas));
         }
     }
     if (LineRadioButton.IsChecked == true)
     {
         TestPolyline.Points.Add(e.GetPosition(CellCanvas));
     }
     else
     {
         TestPolygon.Points.Add(e.GetPosition(CellCanvas));
     }
 }
Ejemplo n.º 2
0
        private void CellCanvas_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            _isDrawing            = false;
            CellCanvas.MouseMove -= CellCanvas_PreviewMouseMove;
            CellCanvas.PreviewMouseRightButtonDown -= CellCanvas_PreviewMouseRightButtonDown;
            CellCanvas.ReleaseMouseCapture();

            var cells = LineRadioButton.IsChecked == true?GetPolyLineRegion(TestPolyline.Points) : GetPolygonRegion(TestPolygon.Points);

            foreach (var cell in cells)
            {
                var grid = new Rectangle();
                grid.Fill = Brushes.Green;
                Canvas.SetLeft(grid, cell.X * GRID_SIZE);
                Canvas.SetTop(grid, cell.Y * GRID_SIZE);
                grid.Width = grid.Height = GRID_SIZE;
                CellCanvas.Children.Add(grid);
            }
        }