0

我正在尝试从 txt 文件中的 xaml 代码更新画布。我所做的是一个保存功能,可以保存围绕所有内容的画布。

然后我正在尝试创建一个加载函数来打开该 txt 文件并使用该文件中的数据更新画布。

但我的问题是它没有更新现有的画布,而是插入了一个新的画布,所以我有 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);

编辑:新代码:

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

// 尼弗尔

4

1 回答 1

0

我相信我确实解决了它。

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

有了这个,我只能得到一个 Canvas,但也许这是错误的方法。

于 2012-11-30T11:07:42.287 回答