1

私は WPF でソフトウェアを作成しています。ソフトウェアでは、ユーザーはイメージを読み込んでマップを構成できます。

基本的に、(マップの) 画像が読み込まれると、ユーザーは他の画像 (宝物やモンスターの写真など) をマップの画像内にドラッグ アンド ドロップして追加できます。

ユーザーがソフトウェアを閉じて再度開くと、アプリケーションを閉じる前に、ユーザーが設定したように、最後の画像が開かれ、追加された UI 要素が同じ場所に配置されます。

私が考えることができる1つの方法は、画像ファイルをバイト配列に保存するか、ファイルの場所を保存し、他のUI要素の位置をテキストファイルに保存し、アプリケーションが読み込まれるたびにそれをチェックすることです.

しかし、これを解決する簡単な方法はありますか? WPF アプリケーション ページの状態を保存する方法はありますか?

4

1 に答える 1

1

おそらく、終了時にWindows xamlを保存し、アプリケーションの開始時にリロードすることができます。

    public MainWindow()
    {
        InitializeComponent();
        Loaded += new RoutedEventHandler(MainWindow_Loaded);
        Closing += new CancelEventHandler(MainWindow_Closing);
    }


    void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
       LoadExternalXaml();
    }

    void MainWindow_Closing(object sender, CancelEventArgs e)
    {
        SaveExternalXaml();
    }


    public void LoadExternalXaml()
    {
        if (File.Exists(@"C:\Test.xaml"))
        {
            using (FileStream stream = new FileStream(@"C:\Test.xaml", FileMode.Open))
            {
                this.Content = XamlReader.Load(stream);
            }
        }
    }

    public void SaveExternalXaml()
    {
        using (FileStream stream = new FileStream(@"C:\Test.xaml", FileMode.Create))
        {
            XamlWriter.Save(this.Content, stream);
        }
    }
于 2012-12-02T22:47:47.097 に答える