/*____________________________________________________Общедоступные_статические_методы_________________________________________________*/
        #region Public static methods
        public static FractalTemplates LoadFromFile(string FileName)
        {
            FileStream stream = null;;

            try
            {
                stream = new FileStream(FileName, FileMode.Open);
                BinaryFormatter  bf     = new BinaryFormatter();
                FractalTemplates result = (FractalTemplates)bf.Deserialize(stream);
                result.Stream   = stream;
                result.AutoSave = true;
                return(result);
            }
            catch
            {
                if (stream != null)
                {
                    stream.Close();
                }
                return(new FractalTemplates(FileName));
            }
        }
        /*public void Add(FractalTemplate FractalTemplate)
         * {
         *  FractalTemplate.index=lastindex++;
         *  _templates.Add(FractalTemplate);
         *  if (DataChanged != null) DataChanged(this);
         * }
         * public void Remove(FractalTemplate fractalTemplate)
         * {
         *  for(int i=0;i<_templates.Count;i++)
         *  {
         *      if(_templates[i].index==fractalTemplate.index)
         *      {
         *          _templates.RemoveAt(i);
         *          if (DataChanged != null) DataChanged(this);
         *          break;
         *      }
         *  }
         * }*/
        #endregion Public methods of class

        /*__________________________________________________________Частные_методы_класса______________________________________________________*/
        #region Private methods
        private void _save_data(FractalTemplates sender)
        {
            SaveDataToFile();
        }
 private void MainForm_Load(object sender, EventArgs e)
 {
     FractalControler               = new FractalDataHandlerControler();
     MainFractalPictureBox          = new FractalPictureBox();
     MainFractalPictureBox.SizeMode = PictureBoxSizeMode.AutoSize;
     MainPanel.Controls.Add(MainFractalPictureBox);
     #region Julia creating
     FirstJulia = new FractalDataHandler(this, new JuliaWithClouds(FractalStaticData.RecomendJuliaIterationsCount, -1.523D, 1.523D, -0.9D, 0.9D, new Complex(-0.8D, 0.156D)), MainFractalPictureBox, new My2DClassicColorMode(), new Size(960, 640), FractalControler);
     FirstJulia.ConnectToolStripProgressBar(toolStripProgressBar1);
     FirstJulia.ConnectShowToMenuItem(первыйФракталToolStripMenuItem, FractalControler, 32, 32);
     FirstJulia.ConnectStandartResetToMenuItem(новыйСтандартногоРазмераToolStripMenuItem, FractalControler);
     FirstJulia.ConnectResetWithSizeFromWindowToMenuItem(новыйСЗаданнымРазмеромToolStripMenuItem, FractalControler);
     FirstJulia.ConntectToStatusLabel(toolStripStatusLabel1);
     SecondJulia = new FractalDataHandler(this, new JuliaWithClouds(FractalStaticData.RecomendJuliaIterationsCount, -0.91D, 0.91D, -1.12D, 1.12D, new Complex(0.285D, 0.0126D)), MainFractalPictureBox, new My2DClassicColorMode(), new Size(960, 640), FractalControler);
     SecondJulia.ConnectToolStripProgressBar(toolStripProgressBar1);
     SecondJulia.ConnectShowToMenuItem(второйФракталToolStripMenuItem, FractalControler, 32, 32);
     SecondJulia.ConnectStandartResetToMenuItem(новыйСтандартногоРазмераToolStripMenuItem1, FractalControler);
     SecondJulia.ConnectResetWithSizeFromWindowToMenuItem(новыйСЗаданнымРазмеромToolStripMenuItem1, FractalControler);
     SecondJulia.ConntectToStatusLabel(toolStripStatusLabel1);
     ThirdJulia = new FractalDataHandler(this, new JuliaWithClouds(FractalStaticData.RecomendJuliaIterationsCount, -1.35D, 1.35D, -1.12D, 1.12D, new Complex(-0.0085D, 0.71D)), MainFractalPictureBox, new My2DClassicColorMode(1.1D, 1.1D, 1.1D), new Size(960, 640), FractalControler);
     ThirdJulia.ConnectToolStripProgressBar(toolStripProgressBar1);
     ThirdJulia.ConnectShowToMenuItem(третийToolStripMenuItem, FractalControler, 32, 32);
     ThirdJulia.ConnectStandartResetToMenuItem(новыйСтандартногоРазмераToolStripMenuItem2, FractalControler);
     ThirdJulia.ConnectResetWithSizeFromWindowToMenuItem(новыйСЗаданнымРазмеромToolStripMenuItem2, FractalControler);
     ThirdJulia.ConntectToStatusLabel(toolStripStatusLabel1);
     FourthJulia = new FractalDataHandler(this, new JuliaWithClouds(FractalStaticData.RecomendJuliaIterationsCount, -0.88D, 0.88D, -1.12D, 1.12D, new Complex(0.285D, 0.01D)), MainFractalPictureBox, new My2DClassicColorMode(), new Size(960, 640), FractalControler);
     FourthJulia.ConnectToolStripProgressBar(toolStripProgressBar1);
     FourthJulia.ConnectShowToMenuItem(четвёртыйФракталToolStripMenuItem, FractalControler, 32, 32);
     FourthJulia.ConnectStandartResetToMenuItem(новыйСтандартногоРазмераToolStripMenuItem3, FractalControler);
     FourthJulia.ConnectResetWithSizeFromWindowToMenuItem(новыйСЗаданнымРазмеромToolStripMenuItem3, FractalControler);
     FourthJulia.ConntectToStatusLabel(toolStripStatusLabel1);
     FifthJulia = new FractalDataHandler(this, new JuliaWithClouds(FractalStaticData.RecomendJuliaIterationsCount, -1.505D, 1.505D, -0.9D, 0.9D, new Complex(-0.74534D, 0.11301D)), MainFractalPictureBox, new My2DClassicColorMode(), new Size(960, 640), FractalControler);
     FifthJulia.ConnectToolStripProgressBar(toolStripProgressBar1);
     FifthJulia.ConnectShowToMenuItem(пятыйФракталToolStripMenuItem, FractalControler, 32, 32);
     FifthJulia.ConnectStandartResetToMenuItem(новыйСтандартногоРазмераToolStripMenuItem4, FractalControler);
     FifthJulia.ConnectResetWithSizeFromWindowToMenuItem(новыйСЗаданнымРазмеромToolStripMenuItem4, FractalControler);
     FifthJulia.ConntectToStatusLabel(toolStripStatusLabel1);
     SixthJulia = new FractalDataHandler(this, new JuliaWithClouds(FractalStaticData.RecomendJuliaIterationsCount, -1.5D, 1.5D, -1D, 1D, new Complex(-0.75D, -0.03125D)), MainFractalPictureBox, new Simple2DFractalColorMode(), new Size(960, 640), FractalControler);
     SixthJulia.ConnectShowToMenuItem(шестойФракталToolStripMenuItem, FractalControler, 32, 32);
     SixthJulia.ConnectStandartResetToMenuItem(новыйСтандартногоРазмераToolStripMenuItem7, FractalControler);
     SixthJulia.ConnectResetWithSizeFromWindowToMenuItem(новыйСЗаданнымРазмеромToolStripMenuItem7, FractalControler);
     SixthJulia.ConntectToStatusLabel(toolStripStatusLabel1);
     SixthJulia.ConnectToolStripProgressBar(toolStripProgressBar1);
     #endregion /Julia creating
     MandelbrotHandler = new FractalDataHandler(this, new MandelbrotWithClouds(), MainFractalPictureBox, new CosColorMode(), new Size(960, 640), FractalControler);
     MandelbrotHandler.ConnectToolStripProgressBar(toolStripProgressBar1);
     MandelbrotHandler.ConnectShowToMenuItem(обыкновенныйToolStripMenuItem, FractalControler, 32, 32);
     MandelbrotHandler.ConnectStandartResetToMenuItem(новыйСтандартногоРазмераToolStripMenuItem5, FractalControler);
     MandelbrotHandler.ConnectResetWithSizeFromWindowToMenuItem(новыйСЗаданнымРазмеромToolStripMenuItem5, FractalControler);
     MandelbrotHandler.ConntectToStatusLabel(toolStripStatusLabel1);
     AmoebaLasVegas = new FractalDataHandler(this, new AmoebaLasVegas(), MainFractalPictureBox, new TrioArgsCosColorMode(), new Size(900, 900), FractalControler);
     AmoebaLasVegas.ConnectToolStripProgressBar(toolStripProgressBar1);
     AmoebaLasVegas.ConnectShowToMenuItem(amoebaLasVegasToolStripMenuItem, FractalControler, 16, 16);
     AmoebaLasVegas.ConnectStandartResetToMenuItem(новыйСтандартногоРазмераToolStripMenuItem8, FractalControler);
     AmoebaLasVegas.ConntectToStatusLabel(toolStripStatusLabel1);
     _differenсe_in_width                 = this.Width - MainPanel.Width;
     _difference_in_height                = this.Height - MainPanel.Height;
     FractalDataHandler.UseSafeZoom       = true;
     FractalDataHandler.MaxGlobalPercent  = toolStripProgressBar1.Maximum;
     MainFractalPictureBox.OpenMenuEvent += () => { contextMenuStrip1.Show(Cursor.Position); };
     MainFractalPictureBox.SelectionPen   = null;
     fractalTemplates = FractalTemplates.LoadFromFile(FileToSave);
     #region GlobalTemplates
     GlobalTemplates.Initializate(FileToGlobalTemplates);
     GlobalTemplates.AddDefaultTemplate("Шрифт меню главного окна", Color.Black, menuStrip1.Font);
     GlobalTemplates.AddDefaultTemplate("Шрифт окна с шаблонами", Color.Black, new Font("Microsoft Sans Serif", 12.25f));
     GlobalTemplates.AddDefaultTemplate("Шрифт окна для настройки цветового режима", Color.Black, new Font("Microsoft sans serif", 12.25f));
     GlobalTemplates.AddDefaultTemplate("Шрифт окна для ввода фрактала джулии", Color.Black, new Font("Microsoft sans serif", 12.35f));
     GlobalTemplates.AddDefaultTemplate("Шрифт окна для ввода нового разрешения", Color.Black, new Font("Microsoft sans serif", 12.35f));
     GlobalTemplates.AddDefaultTemplate("Шрифт окна вращения фрактала", Color.Black, new Font("Microsoft sans serif", 12.35f));
     GlobalTemplates.SetTemplate(menuStrip1, "Шрифт меню главного окна");
     this.FormClosing += (s, _e) => { GlobalTemplates.SaveTemplates(FileToGlobalTemplates); };
     #endregion /GlobalTemplates
 }
 public TemplatesViewer(FractalTemplates ts)
 {
     InitializeComponent();
     tms = ts.Templates;
     fractalTemplates = ts;
 }