在文件中写入形状和笔画

时间:2012-09-05 13:19:19

标签: c# wpf

我在WPF开发一个程序,需要在文件中编写和读取shapse(矩形,椭圆,...)并读取它们。

有没有办法,或者我必须写出它的规格,如宽度,高度......加载它们? 任何的想法?

我用过:

  Stream stream = File.Open("mehdi.txt", FileMode.Create);
            BinaryFormatter bFormatter = new BinaryFormatter();
            ArrayList a = new ArrayList();
            a.Add(shapelist);  //shapelist is arraylist

            bFormatter.Serialize(stream, a);
            stream.Close();

但此代码有以下错误:

Type 'System.Windows.Shapes.Rectangle' in Assembly 'PresentationFramework, Version=4.0.0.0,
 Culture=neutral, PublicKeyToken=31bf3856ad364e35' is not marked as serializable.

2 个答案:

答案 0 :(得分:1)

您可以将描述“设计”的XAML(矩形,椭圆等)保存为单独的.xaml文件。

然后,您可以使用XAMLReader.Load/Save按需加载/保存该XAML。

这将创建一个对象,然后您可以将其设置为内容/添加,以便在UI中显示它。

答案 1 :(得分:0)

这很有用!

 FileStream f = new FileStream("mehdi.txt", FileMode.Create, FileAccess.Write); // 
        XamlWriter.Save(inkcanvas, f);
        foreach (var e1 in inkcanvas.Children) // 
        XamlWriter.Save(e1);
        foreach (var e1 in inkcanvas.Strokes)
               XamlWriter.Save(e1);