如何在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
相关产品推荐
相关产品推荐

