private void MenuItemTalleta_Click(object sender, RoutedEventArgs e) { string tiedostonnimi; System.Windows.Forms.SaveFileDialog dlg = new System.Windows.Forms.SaveFileDialog(); // Set filter for file extension and default file extension dlg.DefaultExt = ".xml"; dlg.Filter = "XML-tiedosto (.xml)|*.xml"; // Display OpenFileDialog by calling ShowDialog method System.Windows.Forms.DialogResult result = dlg.ShowDialog(); // Get the selected file name and display in a TextBox if (result == System.Windows.Forms.DialogResult.OK) { tiedostonnimi = dlg.FileName; this.Title = tiedostonnimi; } else { return;//ei tehdän mitään } XDocument xdoc = new XDocument(); XElement xeRoot = new XElement("Data"); XElement xeSubRoot = new XElement("Rows"); foreach (var item in piirustukset) { Piirros pii = (Piirros)item; XElement xRow = new XElement("Row"); xRow.Add(new XElement("Muoto", pii.Muoto)); xRow.Add(new XElement("X", pii.X)); xRow.Add(new XElement("Y", pii.Y)); xRow.Add(new XElement("X2", pii.X2)); xRow.Add(new XElement("Y2", pii.Y2)); xRow.Add(new XElement("Width", pii.Width)); xRow.Add(new XElement("Height", pii.Height)); xRow.Add(new XElement("R", pii.R)); xRow.Add(new XElement("G", pii.G)); xRow.Add(new XElement("B", pii.B)); xRow.Add(new XElement("A", pii.A)); xRow.Add(new XElement("StrokeThickness", pii.StrokeThikness)); xRow.Add(new XElement("Fill", pii.Fill)); xeSubRoot.Add(xRow); } xeRoot.Add(xeSubRoot); xdoc.Add(xeRoot); xdoc.Save(tiedostonnimi); }
private void GridPiirto_MouseMove(object sender, MouseEventArgs e) { if (piirtotila) { switch (muoto) { case 1: Line viiva = new Line(); viiva.StrokeThickness = paksuus; viiva.Stroke = sivellin; viiva.X1 = x; viiva.Y1 = y; viiva.X2 = e.GetPosition(this.GridPiirto).X; viiva.Y2 = e.GetPosition(this.GridPiirto).Y; this.GridPiirto.Children.Add(viiva); piirros = new Piirros; piirros.Muoto = 1; piirros.R = vari.R; piirros.G = vari.G; piirros.B = vari.B; piirros.A = vari.A; piirros.StrokeThickness = paksuus; piirros.X = x; piirros.Y = y; piirros.X2 = e.GetPosition(this.GridPiirto).X; piirros.Y2 = e.GetPosition(this.GridPiirto).Y; piirros.Fill = false; piirustukset.Add(piirros); x = e.GetPosition(this.GridPiirto).X; y = e.GetPosition(this.GridPiirto).Y; break; case 2: if (ellipsi == null) { ellipsi = new Ellipse(); ellipsi.Stroke = sivellin; ellipsi.HorizontalAlignment = HorizontalAlignment.Left; ellipsi.VerticalAlignment = VerticalAlignment.Top; ellipsi.StrokeThickness = paksuus; } if (x > e.GetPosition(this.GridPiirto).X) { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, y, 0, 0); } } else { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(x, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(x, y, 0, 0); } } ellipsi.Width = Math.Abs(x - e.GetPosition(this.GridPiirto).X); ellipsi.Height = Math.Abs(y - e.GetPosition(this.GridPiirto).Y); try { this.GridPiirto.Children.Add(ellipsi); } catch { } break; case 3: if (suorakaide == null) { suorakaide = new Rectangle(); suorakaide.Stroke = sivellin; suorakaide.HorizontalAlignment = HorizontalAlignment.Left; suorakaide.VerticalAlignment = VerticalAlignment.Top; suorakaide.StrokeThickness = paksuus; } if (x > e.GetPosition(this.GridPiirto).X) { if (y > e.GetPosition(this.GridPiirto).Y) { suorakaide.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { suorakaide.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, y, 0, 0); } } else { if (y > e.GetPosition(this.GridPiirto).Y) { suorakaide.Margin = new Thickness(x, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { suorakaide.Margin = new Thickness(x, y, 0, 0); } } suorakaide.Width = Math.Abs(x - e.GetPosition(this.GridPiirto).X); suorakaide.Height = Math.Abs(y - e.GetPosition(this.GridPiirto).Y); try { this.GridPiirto.Children.Add(suorakaide); } catch { } break; case 4: ellipsi = new Ellipse(); ellipsi.Stroke = sivellin; ellipsi.HorizontalAlignment = HorizontalAlignment.Left; ellipsi.VerticalAlignment = VerticalAlignment.Top; ellipsi.StrokeThickness = paksuus; if (x > e.GetPosition(this.GridPiirto).X) { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, y, 0, 0); } } else { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(x, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(x, y, 0, 0); } } ellipsi.Width = Math.Abs(x - e.GetPosition(this.GridPiirto).X); ellipsi.Height = Math.Abs(y - e.GetPosition(this.GridPiirto).Y); this.GridPiirto.Children.Add(ellipsi); piirros = new Piirros(); piirros.Muoto = 4; piirros.R = vari.R; piirros.G = vari.G; piirros.B = vari.B; piirros.A = vari.A; piirros.StrokeThickness = paksuus; piirros.X = x; piirros.Y = y; piirros.Width = ellipsi.Width; piirros.Height = ellipsi.Height; piirros.Fill = false; piirustukset.Add(piirros); break; case 5: if (ellipsi == null) { ellipsi = new Ellipse(); ellipsi.Stroke = sivellin; ellipsi.Fill = sivellin; ellipsi.HorizontalAlignment = HorizontalAlignment.Left; ellipsi.VerticalAlignment = VerticalAlignment.Top; ellipsi.StrokeThickness = paksuus; } if (x > e.GetPosition(this.GridPiirto).X) { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, y, 0, 0); } } else { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(x, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(x, y, 0, 0); } } ellipsi.Width = Math.Abs(x - e.GetPosition(this.GridPiirto).X); ellipsi.Height = Math.Abs(x - e.GetPosition(this.GridPiirto).Y); try { this.GridPiirto.Children.Add(ellipsi); } catch { } break; } } }
private void GridPiirto_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { switch (muoto) { case 2: piirros = new Piirros(); piirros.Muoto = 2; piirros.R = vari.R; piirros.G = vari.G; piirros.B = vari.B; piirros.A = vari.A; piirros.StrokeThickness = paksuus; piirros.X = x; piirros.Y = y; piirros.Width = ellipsi.Width; piirros.Height = ellipsi.Height; piirros.Fill = false; piirustukset.Add(piirros); //this.GridPiirto.Children.Add(ellipsi); ellipsi = null; break; case 3: piirros = new Piirros(); piirros.Muoto = 3; piirros.R = vari.R; piirros.G = vari.G; piirros.B = vari.B; piirros.A = vari.A; piirros.StrokeThickness = paksuus; piirros.X = x; piirros.Y = y; piirros.Width = suorakaide.Width; piirros.Height = suorakaide.Height; piirros.Fill = false; piirustukset.Add(piirros); //this.GridPiirto.Children.Add(suorakaide); suorakaide = null; break; case 4: break; case 5: piirros = new Piirros(); piirros.Muoto = 5; piirros.R = vari.R; piirros.G = vari.G; piirros.B = vari.B; piirros.A = vari.A; piirros.StrokeThickness = paksuus; piirros.X = x; piirros.Y = y; piirros.Width = ellipsi.Width; piirros.Height = ellipsi.Height; piirros.Fill = true; piirustukset.Add(piirros); //this.GridPiirto.Children.Add(ellipsi); ellipsi = null; break; } piirtotila = false; }
private void GridPiirto_MouseMove(object sender, MouseEventArgs e) { if (piirtotila) { switch (muoto) { case 1: Line viiva = new Line(); //uusi viiva viiva.StrokeThickness = paksuus; //viiva paksuus paksuus = 6; viiva.Stroke = sivellin; viiva.X1 = x; //viivan alkupisteen x-koordinaatti viiva.Y1 = y; //viivan alkupisteen y-koordinaatti viiva.X2 = e.GetPosition(this.GridPiirto).X; //viivan loppupisteen x-koordinaatti viiva.Y2 = e.GetPosition(this.GridPiirto).Y; //viivan loppupisteen y-koordinaatti this.GridPiirto.Children.Add(viiva); //lisätään viiva Gridin Children-kokoelmaan //siis ikkunaan //hiiren koordinaatti talten //Aqui empieza a funcionar PIIRROS piirros = new Piirros(); piirros.Muoto = 1; piirros.R = vari.R; piirros.G = vari.G; piirros.B = vari.B; piirros.A = vari.A; piirros.StrokeThikness = paksuus; piirros.X = x; piirros.Y = y; piirros.X2 = e.GetPosition(this.GridPiirto).X; piirros.Y2 = e.GetPosition(this.GridPiirto).Y; piirros.Fill = 0; piirustukset.Add(piirros); x = e.GetPosition(this.GridPiirto).X; y = e.GetPosition(this.GridPiirto).Y; break; case 2: if (ellipsi == null) { ellipsi = new Ellipse(); ellipsi.Stroke = sivellin; ellipsi.HorizontalAlignment = HorizontalAlignment.Left; ellipsi.VerticalAlignment = VerticalAlignment.Top; ellipsi.StrokeThickness = paksuus; } if (x > e.GetPosition(this.GridPiirto).X) { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, y, 0, 0); } } else { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(x, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(x, y, 0, 0); } } ellipsi.Width = Math.Abs(x - e.GetPosition(this.GridPiirto).X); ellipsi.Height = Math.Abs(y - e.GetPosition(this.GridPiirto).Y); try { this.GridPiirto.Children.Add(ellipsi); } catch { } break; case 3: if (suorakaide == null) { suorakaide = new Rectangle(); suorakaide.Stroke = sivellin; suorakaide.HorizontalAlignment = HorizontalAlignment.Left; suorakaide.VerticalAlignment = VerticalAlignment.Top; suorakaide.StrokeThickness = paksuus; } if (x > e.GetPosition(this.GridPiirto).X) { if (y > e.GetPosition(this.GridPiirto).Y) { suorakaide.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { suorakaide.Margin = new Thickness(x, y, 0, 0); } } suorakaide.Width = Math.Abs(x - e.GetPosition(this.GridPiirto).X); suorakaide.Height = Math.Abs(y - e.GetPosition(this.GridPiirto).Y); try { this.GridPiirto.Children.Add(suorakaide); } catch { } break; case 4: ellipsi = new Ellipse(); ellipsi.Stroke = sivellin; ellipsi.HorizontalAlignment = HorizontalAlignment.Left; ellipsi.VerticalAlignment = VerticalAlignment.Top; ellipsi.StrokeThickness = paksuus; if (x > e.GetPosition(this.GridPiirto).X) { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, y, 0, 0); } } else { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(x, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(x, y, 0, 0); } } ellipsi.Width = Math.Abs(x - e.GetPosition(this.GridPiirto).X); ellipsi.Height = Math.Abs(y - e.GetPosition(this.GridPiirto).Y); this.GridPiirto.Children.Add(ellipsi); /*-----------------------------------------*/ piirros = new Piirros(); piirros.Muoto = 4; piirros.R = vari.R; piirros.G = vari.G; piirros.B = vari.B; piirros.A = vari.A; piirros.StrokeThikness = paksuus; piirros.X = x; piirros.Y = y; piirros.Width = ellipsi.Width; piirros.Height = ellipsi.Height; piirros.Fill = 0; piirustukset.Add(piirros); break; case 5: if (ellipsi == null) { ellipsi = new Ellipse(); ellipsi.Stroke = sivellin; ellipsi.Fill = sivellin; ellipsi.HorizontalAlignment = HorizontalAlignment.Left; ellipsi.VerticalAlignment = VerticalAlignment.Top; ellipsi.StrokeThickness = paksuus; } if (x > e.GetPosition(this.GridPiirto).X) { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(e.GetPosition(this.GridPiirto).X, y, 0, 0); } } else { if (y > e.GetPosition(this.GridPiirto).Y) { ellipsi.Margin = new Thickness(x, e.GetPosition(this.GridPiirto).Y, 0, 0); } else { ellipsi.Margin = new Thickness(x, y, 0, 0); } } ellipsi.Width = Math.Abs(x - e.GetPosition(this.GridPiirto).X); ellipsi.Height = Math.Abs(y - e.GetPosition(this.GridPiirto).Y); try { this.GridPiirto.Children.Add(ellipsi); } catch { } break; } } }