我们有一个包含stackpanel控件的WPF窗口应用程序,我希望它仅在测试时可见,但在生产时不可见。
我们希望将该堆栈面板的可见性值存储在应用程序配置文件(app.config)中。
实现这一目标的WPF方式是什么?
答案 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
值(可见/折叠/隐藏))