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が1つしか得られませんが、間違った方法かもしれません。

于 2012-11-30T11:07:42.287 に答える