private void Drag_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if (this.IsDragging) { Point NewPoint; NewPoint = form.PointToScreen(new Point(e.X, e.Y)); NewPoint.Offset(this.ClickedPoint.X * -1, this.ClickedPoint.Y * -1); form.Location = NewPoint; } }
protected void OnMouseMove(object sender, MouseEventArgs e) { if (this.IsDragging) { Point NewPoint; NewPoint = this.PointToScreen(new Point(e.X, e.Y)); //The new point is relative to the original point NewPoint.Offset((this.ClickedPoint.X + BorderWidth) * -1, (this.ClickedPoint.Y + BorderWidth) * -1); //Finally, assign the form's location to the //determined new point this.Location = NewPoint; } base.OnMouseMove(e); }
private void Window_Loaded(object sender, RoutedEventArgs e) { BitmapImage Image = new BitmapImage(); Image.BeginInit(); Image.UriSource = new Uri(@"/Images/new_game.jpg", UriKind.RelativeOrAbsolute); //загружаем картинку Image.EndInit(); Image game = new Image(); //картинка для кнопки game.Source = Image; //Загруженная картинка btnMiner.Content = game; timer.Stop(); lblTimer.Content = "0"; lblFlags.Content = NumBombs; int[,] Mas = new int[N, M]; SetBombs(Mas); CountBombs(Mas); btns = new Button[N, M]; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { btns[i, j] = new Button(); NewPoint p = new NewPoint(i, j, Mas[i, j]); btns[i, j].Tag = p; btns[i, j].Content = ""; btns[i, j].Width = 30; btns[i, j].Height = 30; btns[i, j].Click += btnNew_Click; btns[i, j].MouseRightButtonDown += btnRight_Button_Click; Canvas.SetLeft(btns[i, j], i * btns[i, j].Width); Canvas.SetTop(btns[i, j], j * btns[i, j].Height); cnvMain.Width = btns[i, j].Width * N; cnvMain.Height = btns[i, j].Height * M; cnvMain.Children.Add(btns[i, j]); } } }
Quadrant GetQuadrant(NewPoint point) => point switch { (0, 0) => Quadrant.Origin,
private void ProcessGeometry(Geometry geom) { if (geom == null) { return; } var GeometryType = geom.GetGeometryType(); switch ((wkbGeometryType)((int)GeometryType & 0xffff)) { case wkbGeometryType.wkbUnknown: break; case wkbGeometryType.wkbPoint: var pnt = new double[3]; geom.GetPoint(0, pnt); NewPoint?.Invoke(new point(pnt)); break; case wkbGeometryType.wkbLineString: { List <point> ls = new List <point>(); var pointcount = geom.GetPointCount(); for (int p = 0; p < pointcount; p++) { double[] pnt2 = new double[3]; geom.GetPoint(p, pnt2); ls.Add(pnt2); } NewLineString?.Invoke(ls); break; } case wkbGeometryType.wkbPolygon: { List <point> poly = new List <point>(); for (int i = 0; i < geom.GetGeometryCount(); i++) { var geom2 = geom.GetGeometryRef(i); var pointcount1 = geom2.GetPointCount(); for (int p = 0; p < pointcount1; p++) { double[] pnt2 = new double[3]; geom2.GetPoint(p, pnt2); poly.Add(pnt2); } NewPolygon?.Invoke(poly); } break; } case wkbGeometryType.wkbMultiPoint: case wkbGeometryType.wkbMultiLineString: case wkbGeometryType.wkbMultiPolygon: case wkbGeometryType.wkbGeometryCollection: case wkbGeometryType.wkbLinearRing: { Geometry sub_geom; for (int i = 0; i < geom.GetGeometryCount(); i++) { sub_geom = geom.GetGeometryRef(i); ProcessGeometry(sub_geom); } break; } case wkbGeometryType.wkbNone: break; } }