C# 在WPF中自动关闭应用程序后将应用程序恢复为旧状态

C# 在WPF中自动关闭应用程序后将应用程序恢复为旧状态,c#,wpf,C#,Wpf,如何在应用程序自动关闭时在WPF中保存页面状态,以便在应用程序再次运行时,显示相同旧条件下的相同页面?正如郭所说,使用序列化。例如: using using System.Runtime.Serialization.Formatters.Binary; using System.IO; [Serializable] class Example { private int i; private void Save(string fileToSave) { u

如何在应用程序自动关闭时在WPF中保存页面状态,以便在应用程序再次运行时,显示相同旧条件下的相同页面?

正如郭所说,使用序列化。例如:

using using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
[Serializable]
class Example
{
    private int i;
    private void Save(string fileToSave)
    {
        using(Stream writer = File.OpenWrite(fileToSave))
        {
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(writer, this);
        }
    }
    private void Load(string loadFromFile)
    {
        using (Stream reader = File.OpenRead(loadFromFile))
        {
            BinaryFormatter bf = new BinaryFormatter();
            Example temp = (Example)bf.Deserialize(reader);
            //and here you can restore your class from loadFromFile
            this.i = temp.i;
        }
    }
}

还原应用程序状态而不是页面状态您需要序列化状态,并在应用程序启动时加载它。如果您使用的是MVVM,您将在退出时序列化VM,然后在启动时反序列化。Guo..您可以在此发布一个小示例吗谢谢,但该代码中有错误,并且该代码中也有错误,他们正在保存文件Test.Xaml的状态,但是如果打开了其他页面,应用程序关闭,那么,如何恢复运行againIt应用程序时的其他页面实际上与我使用的示例无关——总体思路是相同的。序列化模型或viewmodel OnExit,反序列化OnStart。除了将反序列化模型传递给虚拟机之外,其他一切都与普通MVVM应用程序相同。如何序列化取决于您(xml、json、二进制、数据库等)。Cherkasov Kirill filetoSave是要对其进行序列化的Xaml文件的名称?否,它是将保存类的文件名。