You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在UWP应用程序中存储设置并实现启动时自动加载?

在UWP项目中保存和加载应用设置

UWP里最适合存储这类轻量用户偏好设置的是ApplicationData.Current.LocalSettings,它会将数据保存在应用的本地存储目录中,应用重启后依然能保留设置值。下面是针对文本换行设置的具体实现步骤:

1. 统一设置键名(推荐)

先定义一个常量来固定设置的键名,避免后续代码中出现拼写错误:

private const string TextWrapSettingKey = "IsTextWrapEnabled";

2. 启动/页面加载时读取设置

在页面的Loaded事件或者应用启动逻辑中读取设置,若没有存储过值则使用默认的开启状态:

private void Page_Loaded(object sender, RoutedEventArgs e)
{
    // 尝试读取本地存储的设置值
    if (ApplicationData.Current.LocalSettings.Values.TryGetValue(TextWrapSettingKey, out var settingValue) 
        && settingValue is bool isWrapEnabled)
    {
        // 将设置应用到文本控件
        TargetTextBlock.TextWrapping = isWrapEnabled ? TextWrapping.Wrap : TextWrapping.NoWrap;
        // 同步开关控件的状态(如果有)
        TextWrapToggle.IsOn = isWrapEnabled;
    }
    else
    {
        // 使用默认值:开启文本换行
        TargetTextBlock.TextWrapping = TextWrapping.Wrap;
        TextWrapToggle.IsOn = true;
    }
}

3. 保存用户修改的设置

当用户切换文本换行开关时,在控件的Toggled事件中将新值写入本地存储:

private void TextWrapToggle_Toggled(object sender, RoutedEventArgs e)
{
    if (sender is ToggleSwitch toggle)
    {
        // 保存当前开关状态到本地设置
        ApplicationData.Current.LocalSettings.Values[TextWrapSettingKey] = toggle.IsOn;
        // 同步文本控件的换行状态
        TargetTextBlock.TextWrapping = toggle.IsOn ? TextWrapping.Wrap : TextWrapping.NoWrap;
    }
}

额外说明

  • LocalSettings仅适合存储布尔值、字符串、数字这类简单数据,单个设置项大小不能超过8KB,总存储上限约1MB
  • 如果需要存储复杂对象,可以先将对象序列化为JSON字符串,再以字符串类型存入LocalSettings

内容的提问来源于stack exchange,提问作者MinecraftWolf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:32:47