我想为我制作的一个 vb.net 应用程序换肤,我用谷歌搜索了一些东西,我已经看到了换肤的 vb.net 应用程序。
然而,似乎任何时候我都试图找到有人解释它是一个付费产品的链接。
有人对此有什么有用的吗?
我已经看到了一些以编程方式执行此操作的免费方法,我似乎无法将其完全转换为我自己独特的程序。
我记得在我还是学生的时候(可能是 6 年前)制作了一个“可换肤”的 vb.net winforms 应用程序(媒体播放器)。
这很丑陋,但我这样做的方式如下:
选择透明度颜色。无论你在哪里使用这种颜色,应用程序都是透明的(我使用的是 Fuchsia (#FF00FF),我记得它是当时视频游戏的标准。
对子控件(特定按钮、滑块等)使用命名约定。
为步骤 2 中的控件创建图像。
为这些控件设置 1 个像素宽的彩色涂层占位符。例如,蓝色像素是我的播放按钮,绿色像素是我的暂停按钮,等等。占位符标记了控件的左上角。
在运行时动态生成控件(实际上是带有 onclick 事件的图像)并将它们放在占位符的顶部。
我确信有更好的方法来做到这一点,但那是我粗鲁的方法。
我更像是一个业余爱好者,但你可以这样做:创建一个必须用 winform 和“设置文件”路径初始化的类。从构造函数:
可能是更好的方法,但这几乎就是我上次做的事情。通常我为每种类型的控件、文本框、组合框等指定一个“样式”,然后通过使用标签的控件属性来考虑特殊情况。
不确定这有多大帮助。
不幸的是,VB.NET 没有提供开箱即用的“剥皮”功能。它只是使用标准的 windows 界面。当您更改显示属性时,只会对 UI 进行更改。
我不知道提供皮肤功能的开源项目,但是我使用了许多商业产品。到目前为止,我使用过的最好的应用程序样式框架之一是 Infragistics在NET Advantage中找到的应用程序样式框架。
正如之前的答案所述,香草 VB 很难做到这一点,但有一个免费的替代方案(仍然在 VB 中)。不幸的是,这将涉及您学习很多东西并重写您的应用程序以使用 WPF(Windows Presentation Foundation)。
简而言之,WPF 是 WinForms(您现在可能正在使用)的替代品。主要区别在于 WPF 是基于矢量且独立于分辨率的,而 WinForms 是基于位图的。WPF 的输出看起来很棒,但要学习的东西很多。
您可以轻松地为 WPF 应用程序设置皮肤,Microsoft 示例也向您展示了如何执行此操作。使用 WPF 可能会限制您可以安装的系统,因为它需要 .Net 3.0(如果可以,最好使用 3.0 SP1 或 3.5 SP1)。
WPF 和皮肤的快速谷歌显示了很多希望。
瑞安