2012-12-02 53 views
0

我正在WPF中创建一个软件,并且在软件中,用户可以加载图像并配置一个映射。保存WPF应用程序的状态页面

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

当用户关闭软件并重新打开软件时,我想要在关闭应用程序之前打开最后一张图像,并将用户界面元素添加到同一位置,例如用户设置的方式。

我可以想到的一种方式是将图像文件存储在字节数组中,或者保存文件位置,另一个UI元素位于文本文件中并在每次加载应用程序时检查它。

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

回答

0

也许你可以在退出时保存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); 
     } 
    } 
+0

我试过这段代码,但是,当我尝试加载XAML时,它停止调试。但它确实保存了xaml。 –

+0

把一个Try/Catch放在负载上,并检查是什么导致异常,我一直在使用这个没有问题多年 –