1

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

基本上,一旦加载了(地图的)图像,用户就可以添加其他图像(如宝藏或怪物的图片等),将它们拖放到地图的图像中。

当用户关闭软件并重新打开它时,我希望在关闭应用程序之前打开最后一张图像,并且添加的 UI 元素位于同一个位置,就像用户设置的方式一样。

我能想到的一种方法是将图像文件存储在字节数组中,或者将文件位置和其他 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 回答