在运行时切换资源文件

时间:2017-08-25 14:49:06

标签: c# winforms

在我的Windows窗体应用程序中,我希望提供不同的“窗口模式”(为了简单起见,我们只需将它们称为大小)。这意味着,打开多个表单后,我单击一个按钮,所有表单都切换到小模式(不同的表单布局,不同的内容,大小......)。我点击另一个按钮,它们都切换到大模式。

我计划通过为每个表单创建多个资源文件来执行此操作,每个表单都包含其中一个模式的设置。我会有“MainForm-Large.resx”和“MainForm-Small.resx”,我想我可以用一些自定义逻辑加载和应用其中一个。

但是,在InitializeComponent()中,创建了ComponentResourceManager,负责加载资源文件。我可以从它派生并覆盖GetResourceFileName()方法(这显然足以满足我的需要),但是我仍然不能在我的表单的Designer中使用它,因为资源管理器的实例化发生在里面自动生成的代码。编辑自动生成的代码当然不明智......

忘记InitializeComponent()方法并在我的另一个函数中重新应用所有属性也是不明智的。遍历每一个控件和属性都是一个单调乏味,不可机械化(缺少对设计器进程的攻击)任务 - InitializeComponent()执行完美的任务。

如何在运行时重新加载和重新应用资源文件

0 个答案:

没有答案