2

我想为我制作的一个 vb.net 应用程序换肤,我用谷歌搜索了一些东西,我已经看到了换肤的 vb.net 应用程序。

然而,似乎任何时候我都试图找到有人解释它是一个付费产品的链接。

有人对此有什么有用的吗?


我已经看到了一些以编程方式执行此操作的免费方法,我似乎无法将其完全转换为我自己独特的程序。

4

4 回答 4

3

我记得在我还是学生的时候(可能是 6 年前)制作了一个“可换肤”的 vb.net winforms 应用程序(媒体播放器)。

这很丑陋,但我这样做的方式如下:

  1. 选择透明度颜色。无论你在哪里使用这种颜色,应用程序都是透明的(我使用的是 Fuchsia (#FF00FF),我记得它是当时视频游戏的标准。

  2. 对子控件(特定按钮、滑块等)使用命名约定。

  3. 为步骤 2 中的控件创建图像。

  4. 为这些控件设置 1 个像素宽的彩色涂层占位符。例如,蓝色像素是我的播放按钮,绿色像素是我的暂停按钮,等等。占位符标记了控件的左上角。

  5. 在运行时动态生成控件(实际上是带有 onclick 事件的图像)并将它们放在占位符的顶部。

我确信有更好的方法来做到这一点,但那是我粗鲁的方法。

于 2008-10-28T11:34:22.263 回答
1

我更像是一个业余爱好者,但你可以这样做:创建一个必须用 winform 和“设置文件”路径初始化的类。从构造函数:

  1. 读入一个设置文件(我只是用 XML 编一些东西)
  2. 循环遍历所述winform上的所有控件并应用所述设置文件指定的前/后颜色、图片、不透明度等。
  3. 只需以所有形式实例化该类。

可能是更好的方法,但这几乎就是我上次做的事情。通常我为每种类型的控件、文本框、组合框等指定一个“样式”,然后通过使用标签的控件属性来考虑特殊情况。

不确定这有多大帮助。

于 2011-12-16T21:35:14.293 回答
0

不幸的是,VB.NET 没有提供开箱即用的“剥皮”功能。它只是使用标准的 windows 界面。当您更改显示属性时,只会对 UI 进行更改。

我不知道提供皮肤功能的开源项目,但是我使用了许多商业产品。到目前为止,我使用过的最好的应用程序样式框架之一是 Infragistics在NET Advantage中找到的应用程序样式框架。

于 2008-10-27T01:04:18.230 回答
0

正如之前的答案所述,香草 VB 很难做到这一点,但有一个免费的替代方案(仍然在 VB 中)。不幸的是,这将涉及您学习很多东西并重写您的应用程序以使用 WPF(Windows Presentation Foundation)。

简而言之,WPF 是 WinForms(您现在可能正在使用)的替代品。主要区别在于 WPF 是基于矢量且独立于分辨率的,而 WinForms 是基于位图的。WPF 的输出看起来很棒,但要学习的东西很多。

您可以轻松地为 WPF 应用程序设置皮肤,Microsoft 示例也向您展示了如何执行此操作。使用 WPF 可能会限制您可以安装的系统,因为它需要 .Net 3.0(如果可以,最好使用 3.0 SP1 或 3.5 SP1)。

WPF 和皮肤的快速谷歌显示了很多希望。

瑞安

于 2008-10-28T11:08:14.687 回答