繁体   English   中英

以图形方式模拟.NET winforms应用程序

[英]Graphically template a .NET winforms application

我为我的公司创建了一个非常漂亮的winforms应用程序。 我们有一个图形设计师创建GUI,这很难实现,所有图形按钮,大量分层背景和徽标,动画等。

但现在我的公司想要在不同的品牌下转售它。 但由于我大部分时间编写得很好,我告诉我的更高层次,我可以在一周内完成一个完全重新命名的版本。 基本上我要做的就是更改xml设置文件中的一堆设置,用新的设置替换图形,然后构建。

问题是如果他们想要5个或6个不同的品牌,我将有5个不同的版本来支持(我真的应该支持1,使用diff模板)

问题是在winforms应用程序中交换图像并不容易(据我所知)。 我将所有图形资源放在一个文件夹中,但是一旦将每个文件输入到visual studio中的相应图像列表或容器中,获取它的唯一方法是删除它并重新添加它,更改源文件夹不会导致嵌入的图像刷新。 对于每个构建来说,这将是非常繁琐的,必须有一个更简单的方法。

添加在:
因此经过一些进一步的调查,我倾向于某种resx文件编辑器。 然而,到目前为止,我所看到的更侧重于将字符串转换为各种语言,并且要么非常弱,要么根本无法编辑二进制资源,如bitmaps / png。 虽然如果你在xml查看器中打开resx文件(我使用带有.resx的记事本2设置为使用xml sytax突出显示),MS很友好地告诉你每种类型的编译方式(主要是base 64的变体)

我认为你的目标应该是拥有“可品牌”的资源文件; 你基本上是在本地化你的应用程序,除了你只有几个不同版本的英语。

您可以使用ResGen.exe和ResourceManager加载外部资源文件,因此您可以使用5个不同的“资源”文件,但保持您的代码库相同。

这篇文章也可以帮助... http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/b388c700-0e07-452b-a19e-ce02775f78a6/

编辑:顺便说一下,我会在评论中说,如果你正在经历这方面的大量努力,请考虑WPF ......大多数“图形”元素可能是原生的,特别是如果它是渐变和东西,而不是提到简单的模板。

我要做的只是在文件夹启动时加载磁盘的所有图形,并根据需要创建所需的任何图像列表,而不是在设计器中执行此操作。 如果你担心有人会窃取图形,那么我会为我的图形创建一个简单的文件格式(可能是加密的)和一个简单的小应用程序供你或设计师用来从常规文件转换成这种格式。 那么这只是在不同品牌之间交换这个文件夹的问题。

如果您的大多数表单相似(即相同的徽标,底部相同的按钮等),您可以使用WinForms上的可视继承来定义一组“基本表单”,您的实际表单将从该表单继承。

如果您为每个品牌开发一套“基本表单”,每个集合在一个单独的程序集中,您可以插入生成新品牌所需的工作,以生成一组新的基本表单。

希望能帮助到你

现在已经太晚了,但WPF本来是比WinForms更好的选择,因为它更容易皮肤。

但是看看DevExpress为WinForms做了什么,因为它们的控件有一个蒙皮系统。 将DevExpress winform控件替换为标准winform控件并不太难。

我认为您应该考虑为表单的动态可替换区域创建用户控件。 在运行时,您可以将一个程序集换出另一个程序集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM