代码之家  ›  专栏  ›  技术社区  ›  Scott Ferguson

如何在app.config中将wpf控件值存储为属性设置?

  •  2
  • Scott Ferguson  · 技术社区  · 15 年前

    我们有一个包含stackpanel控件的WPF Windows应用程序,我希望它只在测试时可见,但在生产时不可见。

    我们希望将stackpanel的可见性值存储在应用程序配置文件(app.config)中。

    实现这一目标的WPF方式是什么?

    2 回复  |  直到 10 年前
        1
  •  1
  •   Heinzi    15 年前

    首先,通过转到项目属性/设置并创建应用程序范围bool,在Visual Studio中创建属性。 ShowMyStackPanel . 这将自动(1)创建 Settings 类中 Properties 命名空间和(2)将以下内容添加到app.config中:

    <configuration>
        ...
        <applicationSettings>
            <CsWpfApplication1.Properties.Settings>
                <setting name="ShowMyStackPanel" serializeAs="String">
                    <value>False</value>
                </setting>
            </CsWpfApplication1.Properties.Settings>
        </applicationSettings>
    </configuration>
    

    在WPF窗口中,您现在可以简单地绑定到 Properties.Settings.Default.ShowMyStackPanel 使用A BooleanToVisibilityConverter :

    <Window ...
        xmlns:prop="clr-namespace:CsWpfApplication1.Properties"
        ...>
        <Window.Resources>
            <BooleanToVisibilityConverter x:Key="MyBoolToVisibilityConverter" />
        </Window.Resources>
        ...
            <StackPanel Visibility="{Binding Source={x:Static prop:Settings.Default},
                                             Path=ShowMyStackPanel,
                                             Converter={StaticResource MyBoolToVisibilityConverter}}">
                ...
            </StackPanel>
        ...
    </Window>
    
        2
  •  1
  •   Thomas Levesque    10 年前

    你可以用 following markup extension 要绑定到设置:

    <StackPanel Visibility="{my:SettingBinding StackPanelVisibility}">
    ...
    

    (假设设置另存为 Visibility 值(可见/折叠/隐藏)