private void SaveToFile(string fileName, Shapes.Models.ShapeBase shape)
        {
            XmlSerializer xmlFormat = new XmlSerializer(typeof(Shapes.Models.ShapeBase),
                                                        new System.Type[] { shape.GetType() });

            using (System.IO.FileStream fStream = new System.IO.FileStream(fileName,
                                                                           System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None))
            {
                xmlFormat.Serialize(fStream, shape);
            }
        }
        private void LoadFromFile(string fileName, out Shapes.Models.ShapeBase shape, System.Type derivativeTypeOfShape)
        {
            XmlSerializer xmlFormat = new XmlSerializer(typeof(Shapes.Models.ShapeBase),
                                                        new System.Type[] { derivativeTypeOfShape });

            using (System.IO.FileStream fStream = new System.IO.FileStream(fileName,
                                                                           System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.None))
            {
                shape = (Shapes.Models.ShapeBase)xmlFormat.Deserialize(fStream);
            }
        }