Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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_File Io_Save - Fatal编程技术网

C# 将内容保存到文件中,然后将其读回并显示

C# 将内容保存到文件中,然后将其读回并显示,c#,wpf,file-io,save,C#,Wpf,File Io,Save,我有一些细节,是画布上的图像,文本框中的XAML和列表框中的项目。如何将所有这些内容保存在一个文件中,而不考虑扩展名。我也应该能够打开这些文件,把所有的内容放回它们的位置,即画布中的图像,文本框中的XAML和列表框中的项目。我试图保存在字符串中的详细信息,并保存它,但我无法再次打开它并放回内容 我用来保存内容的代码是: String Data = imagesource + xamldata + xamldesign + listboxitems; try { System.IO.Str

我有一些细节,是画布上的图像,文本框中的XAML和列表框中的项目。如何将所有这些内容保存在一个文件中,而不考虑扩展名。我也应该能够打开这些文件,把所有的内容放回它们的位置,即画布中的图像,文本框中的XAML和列表框中的项目。我试图保存在字符串中的详细信息,并保存它,但我无法再次打开它并放回内容

我用来保存内容的代码是:

String Data = imagesource + xamldata + xamldesign + listboxitems;
try
{
    System.IO.StreamWriter file = new System.IO.StreamWriter(saveFileDialog.FileName);
    file.WriteLine(Data);
    file.Close();
}
这里imagesource是从中获取图像的源。xamldata来自文本框,listboxitems具有列表框中的项目列表。

不,不。 这里的情况有点复杂。您应该理解并接受一种称为“序列化”的新模式—列表中的所有这些内容:图像、文本、列表框中的项目具有不同的性质和用途,它们可以轻松地存储在同一个文件中,但应: 1.尊贵的 2.正确处理-即,将图像作为一系列字节,将其放在文件中的某个位置(由长度或数据结构本身定义),然后在加载时从文件中取回,重新创建图像,将其放在画布上,对于文本和元素也是如此

计算机无法读懂你的心思,也无法理解哪些字节会去哪里。由您来“教”It如何正确处理存储的部分信息。通常为此类任务创建一个类,类似于:

 public class StoreClass {
   public byte[] Image {get;set;}
   public string Text {get;set;}
   public List<MyListItem> ListContent {get;set;}
 }

//here goes MyListItem definition
public class MyListItem {....}
公共类存储类{
公共字节[]映像{get;set;}
公共字符串文本{get;set;}
公共列表ListContent{get;set;}
}
//下面是MyListItem的定义
公共类MyListItem{….}
然后在需要时填充这个类并将其序列化到磁盘上,然后从磁盘加载它(称为“desirialization”的过程),并将其内容放置在正确的位置

你可以读更多