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

时间:2010-05-13 22:31:18

标签: wpf app-config

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

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

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

2 个答案:

答案 0 :(得分:1)

首先,通过转到项目属性/设置并创建应用程序范围bool ShowMyStackPanel,在Visual Studio中创建属性。这将自动(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绑定到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>

答案 1 :(得分:1)

您可以使用following markup extension绑定到设置:

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

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