2012-11-30 41 views
0

我想從xaml代碼更新畫布,我在txt文件中。 我所做的是一個保存功能,可以保存圍繞一切的畫布。從保存的txt文件更新畫布兒童

然後我試圖創建一個加載函數,該函數打開該txt文件並使用該文件中的數據更新畫布。

但我的問題是,它不更新現有的畫布,但instedd廣告一個新的,所以我有2

我的問題是如何解決我的負載功能,因此它不添加一個新的畫布,但只添加保存的畫布兒童。

現在我的加載功能鎖這樣的:

 if (userClickedOK == true) 
     { 
      StreamReader sR = new StreamReader(dlg.FileName); 
      string text = sR.ReadToEnd(); 
      sR.Close(); 

      StringReader stringReader = new StringReader(text); 
      XmlReader xmlReader = XmlReader.Create(stringReader); 

      Canvas canvas1 = (Canvas)System.Windows.Markup.XamlReader.Load(xmlReader); 

      parentWindow.canvas.Children.Clear(); // clear the existing children 
      parentWindow.grid.Children.Add(canvas1); 

Eddit:新代碼:

 if (userClickedOK == true) 
     { 
      StreamReader sR = new StreamReader(dlg.FileName); 
      string text = sR.ReadToEnd(); 
      sR.Close(); 

      StringReader stringReader = new StringReader(text); 
      XmlReader xmlReader = XmlReader.Create(stringReader); 

      parentWindow.canvas = (Canvas)System.Windows.Markup.XamlReader.Load(xmlReader); 

      parentWindow.grid.Children.Add(parentWindow.canvas); 
     } 

// Nivres

回答

0

我相信我沒有解決這個問題。

  parentWindow.grid.Children.Remove(parentWindow.canvas); 
      parentWindow.canvas = (Canvas)System.Windows.Markup.XamlReader.Load(xmlReader); 
      parentWindow.grid.Children.Add(parentWindow.canvas); 

有了這個我只能得到一個Canvas,但也許這是錯誤的路要走。