2012-01-11 75 views
0

我不知道我是否仅仅不理解我到目前为止发现的内容,或者如果它确实太复杂,不适用于这样一个简单的想法。我试图将按钮的高度和宽度绑定到存储在用户设置中的变量。我似乎无法得到这个工作,或者更确切地说,我不知道如何去做,就像在使用什么命令一样。问题在于不知道要在xaml的绑定字段中放置什么。如果任何人都可以指出一个涉及到这一点的指导,可以解释该怎么做,我会非常感激。将高度,宽度等绑定到一个变量

编辑:我解决了绑定变量的问题,它现在应该保存到用户设置文件。现在我遇到了用户设置beig中存储的值的问题,每次使用默认值加载程序时都会覆盖该值。我通过VS调试菜单选择运行这个,所以我想这个问题可能存在,但我已经尝试发布并运行,仍然得到相同的结果。有任何想法吗?

+2

[WPF:绑定到设置中定义的值](http://stackoverflow.com/questions/845030/wpf-bind-to-a-value-defined-in-the-settings) – 2012-01-11 16:50:54

+1

看一看在该教程中: http://khason.net/blog/quick-wpf-tip-how-to-bind-to-wpf-application-resources-and-settings/ – SvenG 2012-01-11 16:52:00

回答

1

通过“用户设置”假设你指的是内置的设置不是一个自定义实现:

对于这样的一个例子见http://blogs.windowsclient.net/bragi/archive/2008/07/03/using-settings-in-wpf-or-how-to-store-retrieve-window-pos-and-loc.aspx - 本质上要TwoWay绑定设置为Properties.Settings.Default:请注意,您必须使用设置用户界面预先定义设置,当应用程序退出时必须致电Properties.Settings.Default.Save()以保持设置。

+0

谢谢,我只是找不到那个页面通过所有的随机谷歌结果。 :)在相关说明中,是否有更改内置设置文件位置的方法?我试图使这完全独立(没有安装,只是旧的DOS风格的复制文件和运行EXE)。 – 2012-01-11 17:21:35

0

我在发布这个答案,以便希望其他人可以阅读它,避免这样一个荒谬的问题。首先,就最初的问题而言,斯陶特很好地回答了这个问题。但我上面的编辑提出了一个新的但相关的问题。我最终在事故中修复它。

这样做的全部目的是我有一个滑块,用来调整快捷按钮的大小。滑块工作,但正如我上面所说,它会重新自我每次我重新加载。在这种情况下,问题是,我必须设置为调整为滑块移动的按钮,所以我用了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标志解决了所有问题。希望这可以帮助别人。

相关问题