保存WPF应用程序页面的状态(Saving the State of a WPF Applicati

2019-08-03 11:28发布

我创建的WPF软件,并在软件中,用户可以加载图像,并配置一个地图。

基本上,一旦(的地图)中的图像被加载,用户可以添加其它图像(如宝或怪物等的画面)将地图图像内删除它们。

当用户关闭该软件,并重新打开它,我想最后一个图像打开,UI元素的加入是在同一个地方,怎么样在用户已经成立,关闭应用程序前。

我能想到的,是存储在图像文件中的字节数组,或保存文件的位置,并在文本文件中的其他UI元素的位置和每一个应用程序加载时检查的一种方式。

但是,有没有办法解决这个更简单的方法? 有没有一种方法,我可以存储WPF应用程序页面的状态?

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


文章来源: Saving the State of a WPF Application Page