【问题标题】:What is the proper way for working with user changeable settings in an app在应用程序中使用用户可更改设置的正确方法是什么
【发布时间】:2018-05-17 09:04:08
【问题描述】:
假设有一个用户可以更改的 ThumbnailWidth 变量,并且应该可以通过 XAML 中的绑定以及从提取缩略图的类中访问该变量。
我们可以添加一个静态类,但用户将无法更改其中定义的值。在 WPF 中,我们可以简单地使用设置中定义的properties.settings.default.ThumbnailWidth,但我不确定它是否是正确的使用方式。
您在项目中使用的方式是什么?
【问题讨论】:
标签:
c#
uwp
windows-runtime
uwp-xaml
【解决方案1】:
这就是我通常处理应用程序设置的方式。首先,在窗口声明中添加以下内容(这是一个自定义的 XML 命名空间声明,定义了设置位置):
xmlns:p="clr-namespace:MyNamespace.Properties"
然后,我在需要的地方绑定设置...例如:
<TextBlock Width="{Binding Source={x:Static p:Settings.Default}, Path=Width, Mode=TwoWay}"/>
<CheckBox IsChecked="{Binding Source={x:Static p:Settings.Default}, Path=MySetting, Mode=TwoWay}"/>
etc...
最后,我在应用关闭时保存修改后的设置:
protected override void OnClosing(CancelEventArgs e)
{
Properties.Settings.Default.Save();
base.OnClosing(e);
}