Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在文件中书写形状和笔划_C#_Wpf - Fatal编程技术网

C# 在文件中书写形状和笔划

C# 在文件中书写形状和笔划,c#,wpf,C#,Wpf,我在WPF中开发一个程序,需要在文件中写入和读取shapse(矩形、椭圆等)并读取它们 有没有办法,否则我必须写它的规格,如宽度,高度。。。一堆? 有什么想法吗 我使用的是: Stream stream = File.Open("mehdi.txt", FileMode.Create); BinaryFormatter bFormatter = new BinaryFormatter(); ArrayList a = new ArrayList

我在
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.
可以将描述“设计”的XAML(矩形、椭圆等)保留为单独的.XAML文件

然后可以使用
XAMLReader.load/save
按需加载/保存该XAML

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

这起作用了

 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);

它遇到以下错误:无法序列化泛型类型“System.Collections.ObjectModel.ObservableCollection`1[System.Windows.UIElement]‌​'. 在保存行–您是否可以显示您试图保存的XAML/对象树…以及用于保存的代码。不要使用ArrayList…只需指定要保存的XAML对象。此程序类似于绘制矩形和椭圆。。。我想保存它们,像油漆一样装填。FileStream=newfilestream(“mehdi.txt”,FileMode.Create);{XamlWriter.Save(this.Content,stream);}您将什么设置为内容…请显示用于构建内容的XAML…或代码隐藏…确保类型可序列化。类型矩形不可序列化如何序列化?如果可能的话?