public MainWindow() : base(Gtk.WindowType.Toplevel) { Build(); var plotView = new PlotView(); this.Add(plotView); plotView.ShowAll(); // Choose file Gtk.FileChooserDialog fcd = new Gtk.FileChooserDialog("Open File", null, Gtk.FileChooserAction.Open); fcd.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); fcd.AddButton(Gtk.Stock.Open, Gtk.ResponseType.Ok); fcd.DefaultResponse = Gtk.ResponseType.Ok; fcd.SelectMultiple = false; Gtk.ResponseType response = (Gtk.ResponseType)fcd.Run(); String DataFile = fcd.Filename; if (response == ResponseType.Ok) { // Run scan Matching ScanMatching.RunScanMatch(DataFile); Console.WriteLine($"{DataFile} selected"); } else { Console.WriteLine("no file selected"); } fcd.Destroy(); // Run Plot var model = new PlotModel { Title = "Scan Matching" }; var scatterSeries = new ScatterSeries { MarkerType = MarkerType.Circle }; var r = new Random(314); for (int i = 0; i < D_Scan_Matching_GUI.ScanMatching.rPNn.ColumnCount; i++) { var x = D_Scan_Matching_GUI.ScanMatching.rPNn[0, i]; var y = D_Scan_Matching_GUI.ScanMatching.rPNn[1, i]; var size = 5; var colorValue = 1500; scatterSeries.Points.Add(new ScatterPoint(x, y, size, colorValue)); } model.Series.Add(scatterSeries); model.Axes.Add(new LinearColorAxis { Position = AxisPosition.Right, Palette = OxyPalettes.Jet(200) }); plotView.Model = model; }