我在发布这个答案,以便希望其他人可以阅读它,避免这样一个荒谬的问题。首先,就最初的问题而言,斯陶特很好地回答了这个问题。但我上面的编辑提出了一个新的但相关的问题。我最终在事故中修复它。
这样做的全部目的是我有一个滑块,用来调整快捷按钮的大小。滑块工作,但正如我上面所说,它会重新自我每次我重新加载。在这种情况下,问题是,我必须设置为调整为滑块移动的按钮,所以我用了slider_ValueChanged事件,你可以在这里看到:
private void iconSizeSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
try
{
Properties.Settings.Default.iconHeight = Convert.ToInt32(iconSizeSlider.Value);
Properties.Settings.Default.iconWidth = Convert.ToInt32(iconSizeSlider.Value * 1.3);
Properties.Settings.Default.Save();
//iconWidth.Text = buttonWidth.ToString();
//ButtonRefresh();
}
catch (FormatException)
{
}
}
在尝试使用运行至光标VS2010的一部分,我厌倦了通过多个加载步骤来完成F11,所以作为一个调试工具,我添加了一个bool fullyInitialized
标志。这完全解决了这个问题。显然(我以前没有意识到),当滑块第一次初始化时,它认为值已经改变,所以当它通过ValueChanged方法运行时,它将所有东西都重置为默认值。因此,围绕try-catch添加一个简单的条件来检查fullyInitialized标志解决了所有问题。希望这可以帮助别人。
[WPF:绑定到设置中定义的值](http://stackoverflow.com/questions/845030/wpf-bind-to-a-value-defined-in-the-settings) – 2012-01-11 16:50:54
看一看在该教程中: http://khason.net/blog/quick-wpf-tip-how-to-bind-to-wpf-application-resources-and-settings/ – SvenG 2012-01-11 16:52:00