【问题标题】:WPF Saving UI settings to .txt file [closed]WPF 将 UI 设置保存到 .txt 文件 [关闭]
【发布时间】:2021-08-11 18:32:09
【问题描述】:

我有一个带有可配置控件的窗口,我可以在其中重新定位它们或在运行时隐藏它们。现在我的目标是保存控件的当前状态,以便每当用户关闭应用程序并再次打开它时,窗口都会显示控件的最后配置。我将 XAML 保存到 .txt 文件,然后读取该文件。使用这种方法是好/安全的方法吗?有更好的方法吗?

【问题讨论】:

    标签: c# wpf user-interface


    【解决方案1】:

    这个问题很可能会因为基于意见而被关闭,但我建议将您的控件状态保存到项目附带的内置 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();
    

    【讨论】:

    • 非常感谢您这么详细的回答!但我有一个问题,在我的情况下,我有多个 UniformGrid,这些确切的控件是可配置的,我应该在设置菜单中选择哪种类型?
    • 您现在将这些 UniformGrid 保存到您的 txt 文件中怎么样?是 ColumnSpacing 和 RowSpacing 吗?就我而言,这些只是整数。尝试将您尝试保存的 UniformGrid 内容分解为简单的内容:int、string 或 bool。我无法想象它需要更多的东西。如果这回答了您的问题,请考虑将我的帖子标记为“答案”。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多