コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: NemoImCap/WPF_Labs
        /// <summary>
        /// Открытие файла и добавление элементов на поле
        /// </summary>
        private void Open_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "Файлы (dat)|*.dat|Все файлы|*.*";
            var result = ofd.ShowDialog();

            if (result == true)
            {
                try
                {
                    // создаем объект BinaryReader
                    using (BinaryReader reader = new BinaryReader(File.Open(ofd.FileName, FileMode.Open)))
                    {
                        shapes.Clear();
                        paint.Children.Clear();

                        // пока не достигнут конец файла
                        // считываем каждое значение из файла
                        while (reader.PeekChar() > -1)
                        {
                            double ShapePosX       = reader.ReadDouble();
                            double ShapePosY       = reader.ReadDouble();
                            int    StrokeThickness = reader.ReadInt32();
                            double OuterRadius     = reader.ReadDouble();
                            double InnerRadius     = reader.ReadDouble();
                            byte   BR = reader.ReadByte();
                            byte   BG = reader.ReadByte();
                            byte   BB = reader.ReadByte();
                            byte   BA = reader.ReadByte();

                            byte SR = reader.ReadByte();
                            byte SG = reader.ReadByte();
                            byte SB = reader.ReadByte();
                            byte SA = reader.ReadByte();



                            Shape s = new Shape
                            {
                                ShapePositionX  = ShapePosX,
                                ShapePositionY  = ShapePosY,
                                StrokeThickness = StrokeThickness,
                                OuterRadius     = OuterRadius,
                                InnerRadius     = InnerRadius,
                                RColor          = BR,
                                GColor          = BG,
                                BColor          = BB,
                                AColor          = BA,

                                SRColor = SR,
                                SGColor = SG,
                                SBColor = SB,
                                SAColor = SA
                            };

                            s.InitShape(paint);
                            shapes.Add(s);
                        }
                    }

                    this.Title = "Фигуры - " + ofd.FileName;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }