将高度、宽度等绑定到变量

本文关键字:绑定 变量 高度 | 更新日期: 2023-09-27 18:19:57

我不知道是我只是不理解到目前为止我发现的东西,还是它真的太复杂了,无法应用于看起来如此简单的想法。我正在尝试将按钮的高度和宽度绑定到存储在用户设置中的变量。我似乎无法让它发挥作用,或者更确切地说,我根本不知道如何使用,比如使用什么命令。问题在于不知道在xaml的Binding字段中放入什么。如果有人能指着一本涉及这一点的指南,解释该怎么做,我将不胜感激。

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

将高度、宽度等绑定到变量

假设"用户设置"是指内置设置而不是自定义实现:

请参阅http://blogs.windowsclient.net/bragi/archive/2008/07/03/using-settings-in-wpf-or-how-to-store-retrieve-window-pos-and-loc.aspx例如,实际上您希望设置TwoWayProperties.Settings.Default的绑定:请注意,您必须使用设置UI预先定义设置,并且必须在应用程序退出时调用Properties.Settings.Default.Save()才能保持设置。

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

这样做的全部目的是我有一个滑动条,可以调整快捷按钮停靠的大小。滑块工作,但正如我上面所说的,每次重新加载时它都会重置。这种情况下的问题是,我将按钮设置为随着滑块的移动而调整大小,所以我使用了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的Run to Cursor部分时,我厌倦了通过大量加载步骤F11,因此作为调试工具,我添加了bool fullyInitialized标志。这彻底解决了问题。显然(我以前没有意识到),当滑块第一次初始化时,它认为值已经更改,所以当它运行ValueChanged方法时,它会将所有内容重置为默认值。因此,在try-catch周围添加一个简单的条件来检查fullyInitialized标志解决了所有问题。希望这能帮助其他人。