【发布时间】:2021-08-11 18:32:09
【问题描述】:
我有一个带有可配置控件的窗口,我可以在其中重新定位它们或在运行时隐藏它们。现在我的目标是保存控件的当前状态,以便每当用户关闭应用程序并再次打开它时,窗口都会显示控件的最后配置。我将 XAML 保存到 .txt 文件,然后读取该文件。使用这种方法是好/安全的方法吗?有更好的方法吗?
【问题讨论】:
标签: c# wpf user-interface
我有一个带有可配置控件的窗口,我可以在其中重新定位它们或在运行时隐藏它们。现在我的目标是保存控件的当前状态,以便每当用户关闭应用程序并再次打开它时,窗口都会显示控件的最后配置。我将 XAML 保存到 .txt 文件,然后读取该文件。使用这种方法是好/安全的方法吗?有更好的方法吗?
【问题讨论】:
标签: c# wpf user-interface
这个问题很可能会因为基于意见而被关闭,但我建议将您的控件状态保存到项目附带的内置 WPF 用户设置文件中,而不是创建您自己的。创建自己的解析器并没有错,但是当 Visual Studio 已经为您提供了解析器时,为什么还要构建自己的解析器。您将在项目的 Properties->Settings.settings 文件下找到此文件。当用户启动您的 WPF 应用程序时,该文件会自动加载。此文件存储在您的 %LocalAppData% 文件夹中,如果您指定了相应的公司名称和产品名称。
假设 Settings.settings 文件包含您要保存的以下状态:
然后在您的代码中,找到合适的时间将这些设置加载到您应用的变量中:
// Load
string lastUser = Properties.Settings.Default.LastUser;
bool detailsEnabled = Properties.Settings.Default.ShowDetails;
int timeout = Properties.Settings.Default.FormTimeoutSeconds;
当您想要保存控件状态时,例如当用户关闭您的应用或更改状态值时,请执行以下操作:
// Save settings
Properties.Settings.Default.LastUser = lastUser;
Properties.Settings.Default.ShowDetails = detailsEnabled;
Properties.Settings.Default.FormTimeoutSeconds = timeout;
Properties.Settings.Default.Save();
【讨论】: