在WPF中使用配置文件(ConfigurationManager)

本文介绍如何通过App.config文件调整.NET应用程序的界面尺寸,无需重新编译应用。利用ConfigurationManager类读取配置文件中的高度和宽度值,并将其应用于MainWindow。

App.config是一个标准的xml文件,xml文件的标记和属性是区分大小写的。开发人员可以使用配置文件来更改设置,而不必重新编译应用程序。配置文件的根节点是configuration。

  • 我只用过appSetting,它是.Net预定义好的配置节
  • 另外还有一个ConnectionString是连接数据库的预定义好的配置节。

在项目进行编译后,在 bin/Debuge 文件下,将出现两个配置文件 ( 以本项目为例 ) ,一个名为“xxxx.EXE.config ”,另一个名为“ xxxx.vshost.exe.config ”。第一个文件为项目实际使用的配置文件,在程序运行中所做的更改都将被保存于此;第二个文件为原代码“ app.config ”的同步文件,在程序运行中不会发生更改。

我们尝试做一个小例子,可以在不启动程序的情况下,用配置文件更改,按钮的大小。

那么如果说,修改好了App.config。程序该如何读取App.config文件,然后发生相应的改变呢?不用担心,.Net为我们提供了操作
App.config的类——ConfigurationManager
configurationManager

在App.config文件中添加代码

<? xml version =" 1.0 " encoding =" utf-8 " ?>
< configuration>
  < startup>
    < supportedRuntime version = "v4.0 " sku = ".NETFramework,Version=v4.5.2 " />
  </ startup>
  < appSettings >
    < add key = "height " value = "600 " />
    < add key = "width " value = "900 " />
  </ appSettings>
</ configuration>

在MainWindow的.cs文件中添加如下代码

Window.Height = int.Parse( ConfigurationManager .AppSettings["height" ]);
            Window.Width = int .Parse(ConfigurationManager .AppSettings[ "width"]);

MainWindow的.xaml文件中为MainWindow添加name属性

Name ="Window"

再把App.config文件设置为如果较新则复制。
这样就大功告成了。

### 如何在 WPF 应用程序的 `app.config` 文件中配置 IP 地址 为了实现这一功能,需要先了解如何操作 `app.config` 文件。该文件是一个 XML 文档,在编译期间会被复制并重命名为应用程序名加上 `.exe.config` 的形式存在[^1]。 #### 修改 `app.config` 要在 `app.config` 中添加自定义设置项用于存储 IP 地址,可以在 `<configuration>` 节点内加入如下结构: ```xml <configuration> <!-- 添加 applicationSettings 或 userSettings --> <applicationSettings> <YourNamespace.Properties.Settings> <setting name="ServerIPAddress" serializeAs="String"> <value>192.168.1.1</value> </setting> </YourNamespace.Properties.Settings> </applicationSettings> </configuration> ``` 这里假设要保存的是服务器端口,则可以通过更改上述代码中的 `name` 和 `value` 属性来适应需求。对于动态变化的数据建议放在 `userSettings` 下面以便于修改而不影响部署后的应用版本[^3]。 #### 编程访问配置数据 当希望编程方式读取或更新这些设定时,可以利用 .NET Framework 提供的 `ConfigurationManager` 类库完成相应工作。下面给出一段 C# 示例代码展示怎样获取以及改变已存在的键值对: ```csharp using System; using System.Windows.Forms; using System.Configuration; public partial class MainForm : Form { public MainForm(){ InitializeComponent(); string currentIp = ConfigurationManager.AppSettings["ServerIPAddress"]; Console.WriteLine($"Current Server IP Address is {currentIp}"); // 更新 IP 地址 var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings["ServerIPAddress"].Value = "new.ip.address"; config.Save(); ConfigurationManager.RefreshSection("appSettings"); } } ``` 这段代码展示了如何通过 `ConfigurationManager` 来读取现有的 IP 设置,并提供了一种方法去安全地更新它们。需要注意的是,如果尝试直接编辑 exe 目录下的配置文件可能会遇到权限问题或者其他意外情况;因此推荐的做法是使用 `OpenExeConfiguration()` 方法打开正确的配置实例后再做改动[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值