我正在使用WPF创建软件,并且在软件中,用户可以加载图像并配置地图。
基本上,一旦加载了图像(地图),用户就可以添加其他图像(如宝藏或怪物的图片等)将它们拖放到地图的图像中。
当用户关闭软件并重新打开它时,我希望打开最后一个图像,并在关闭应用程序之前添加UI元素,就像用户设置的方式一样。
我能想到的一种方法是将图像文件存储在字节数组中,或保存文件位置,将其他UI元素位置保存在文本文件中,并在每次加载应用程序时进行检查。
但是,有没有更简单的方法来解决这个问题?有没有办法可以存储WPF应用程序页面的状态?
答案 0 :(得分: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);
}
}