2014-01-23 34 views
0

我有一些細節,這是在畫布上的圖像,文本框中的XAML和列表框中的項目。如何將所有這些內容保存在單個文件中,而不管擴展名如何。我也應該可以打開這些文件,並將所有內容放回到它們的位置,即Canvas中的Image,文本框中的XAML和列表框中的項目。我試圖在String中保存細節並保存,但我無法再打開它並放回內容。保存內容到一個文件,然後讀回來並顯示它

這我使用保存內容的代碼是:

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有列表框中的項目列表。

回答

0

不,不。 這裏的情況稍微複雜一點。您應該理解並接受一個稱爲「序列化」的新範例 - 列表中的所有這些東西:圖像,文本,列表框中的項目具有不同的性質和目的,它們可以很容易地存儲在同一個文件中,但應該是: 1.尊重 2.妥善處理 - 即將圖像作爲一系列字節,將其放置在文件的某個位置(由長度定義或由數據結構本身定義),然後在加載時從文件中取回,重新創建圖像,將其放置在畫布上,文字和元素也是一樣。

計算機只是不能讀你的思想,明白哪些字節去哪裏。您需要「教導」您存儲的部分信息的正確處理方式。通常用於創建這樣的任務類,類似:

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 {....} 

在需要的時候,你填補了這一類序列化在磁盤上,以後你從磁盤加載它(這個過程被稱爲「desirialization」),並把它在正確的內容地方。

您可以閱讀更多here

相關問題