private void btn_Save_Click(object sender, RoutedEventArgs e)
 {
     if (element.G >= 0)
     {
         MessageBox.Show("Прискорення вільного падіння має бути від'ємним.", "Некоректні дані", MessageBoxButton.OK, MessageBoxImage.Information);
     }
     else
     {
         double distance = Math.Sqrt(Math.Pow(element.FirstBall.Coord.X - element.SecondBall.Coord.X, 2) + Math.Pow(element.FirstBall.Coord.Y - element.SecondBall.Coord.Y, 2));
         if (distance <= element.FirstBall.Radius + element.SecondBall.Radius)
         {
             MessageBox.Show("Кулі не можуть перетинатись.", "Некоректні дані", MessageBoxButton.OK, MessageBoxImage.Information);
         }
         else
         if (!element.checkBorder())
         {
             MessageBox.Show("Кулі виходять за допустимі межі.", "Некоректні дані", MessageBoxButton.OK, MessageBoxImage.Information);
         }
         else
         {
             element.Canvas.Children.Remove(fieldsBorder);
             element.Canvas.ClipToBounds = true;
             if (elementIndex == -1)
             {
                 Data.addElement(element);
             }
             else
             {
                 Data.replaceElement(element, elementIndex);
             }
             this.Hide();
         }
     }
 }
            public static void createElements(DataTable table)
            {
                int i = 0;

                try
                {
                    for (; i < table.Rows.Count; i++)
                    {
                        //Загальні
                        Element element = getNewElement();
                        element.Canvas.Width   = double.Parse(table.Rows[i].ItemArray[0].ToString()) * Data.dataScale;
                        element.Canvas.Height  = double.Parse(table.Rows[i].ItemArray[1].ToString()) * Data.dataScale;
                        element.FPS            = int.Parse(table.Rows[i].ItemArray[2].ToString());
                        element.SpeedAnimation = double.Parse(table.Rows[i].ItemArray[3].ToString());
                        element.Fields         = double.Parse(table.Rows[i].ItemArray[4].ToString()) * Data.dataScale;
                        element.FontSize       = double.Parse(table.Rows[i].ItemArray[5].ToString()) * Data.dataScale;
                        element.InfoVisibility = bool.Parse(table.Rows[i].ItemArray[6].ToString());
                        element.G = double.Parse(table.Rows[i].ItemArray[7].ToString()) * Data.dataScale;

                        //Перша куля
                        element.FirstBall.Radius = double.Parse(table.Rows[i].ItemArray[8].ToString()) * Data.dataScale;
                        element.FirstBall.Mass   = double.Parse(table.Rows[i].ItemArray[9].ToString());
                        string[] temp = table.Rows[i].ItemArray[10].ToString().Split(Data.splitSymbol);
                        element.FirstBall.FillBrush = new SolidColorBrush(Color.FromArgb(byte.Parse(temp[0]), byte.Parse(temp[1]), byte.Parse(temp[2]), byte.Parse(temp[3])));
                        temp = table.Rows[i].ItemArray[11].ToString().Split(Data.splitSymbol);
                        element.FirstBall.StrokeBrush = new SolidColorBrush(Color.FromArgb(byte.Parse(temp[0]), byte.Parse(temp[1]), byte.Parse(temp[2]), byte.Parse(temp[3])));
                        element.FirstBall.Coord       = new Point(double.Parse(table.Rows[i].ItemArray[12].ToString()) * Data.dataScale, 0);
                        element.FirstBall.Speed       = double.Parse(table.Rows[i].ItemArray[13].ToString()) * Data.dataScale;
                        if (element.FirstBall.Speed < 0)
                        {
                            element.FirstBall.Speed     *= -1;
                            element.FirstBall.SpeedAngle = Math.PI;
                        }

                        //Друга куля
                        element.SecondBall.Radius = double.Parse(table.Rows[i].ItemArray[14].ToString()) * Data.dataScale;
                        element.SecondBall.Mass   = double.Parse(table.Rows[i].ItemArray[15].ToString());
                        temp = table.Rows[i].ItemArray[16].ToString().Split(Data.splitSymbol);
                        element.SecondBall.FillBrush = new SolidColorBrush(Color.FromArgb(byte.Parse(temp[0]), byte.Parse(temp[1]), byte.Parse(temp[2]), byte.Parse(temp[3])));
                        temp = table.Rows[i].ItemArray[17].ToString().Split(Data.splitSymbol);
                        element.SecondBall.StrokeBrush = new SolidColorBrush(Color.FromArgb(byte.Parse(temp[0]), byte.Parse(temp[1]), byte.Parse(temp[2]), byte.Parse(temp[3])));
                        element.SecondBall.Coord       = new Point(double.Parse(table.Rows[i].ItemArray[18].ToString()) * Data.dataScale, 0);
                        element.SecondBall.Speed       = double.Parse(table.Rows[i].ItemArray[19].ToString()) * Data.dataScale;
                        if (element.SecondBall.Speed < 0)
                        {
                            element.SecondBall.Speed     *= -1;
                            element.SecondBall.SpeedAngle = Math.PI;
                        }

                        element.positionBalls();
                        element.updateInfo();

                        Data.addElement(element);
                    }
                }catch
                {
                    MessageBox.Show("Не вірний формат елементу: " + i + ". Дані не були коректно завантажені", "Помилка", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
            }