.Net Win Forms 主题





3.00/5 (24投票s)
2004年6月29日
2分钟阅读

263685

10997
在 .net 中创建自定义主题/皮肤只需要几行代码
引言
这篇文章主要讲述了在 VB.net Win Forms 中创建主题。正如我们所知,在很多应用中,我们看到不同风格的表单及其形状,例如 Windows Media Player,您可以在其中更改表单的样式,或者换句话说,更改其皮肤。
并且很多时候在 GUI 开发中,我们需要 Win Forms 有一些不同的 风格 和 形状。一个主题基本上是改变表单的外观及其表现形式。在某些情况下,主题也被称为皮肤。 在 .net 中实现非矩形表单非常简单。
为了实现这个概念,我使用了一个非常简单的例子,您可以看到当您从组合框中选择一个主题时,它会自动更改完整的呈现。
这篇文章中的示例是自解释且简单的。为了实现非矩形表单,我们需要执行以下步骤。
步骤 1: 创建一个 .jpg 文件,该文件将用于设置表单的背景
步骤 2: 创建一个 Windows 应用程序项目并将属性设置为使用 .jpg 作为
表单的背景,并摆脱标题栏。
步骤 3: 使用 GraphicsPath 对象更改表单的形状
步骤 4: 添加用于移动表单和关闭表单的代码。
在这个例子中,我创建了一个名为 Theme 的类。 并且 Theme1、Theme2 是 Theme 的派生类。 每个类都有自己的 Theme 实现。 当用户从表单中的组合框中选择主题时,表单外观会随着主题的更改而改变。
下图显示了示例应用程序的功能。
图 [1] 选择主题之前的 WinForm
图 [2] 选择 Theme1 之后的 WinForm
图 [3] 选择 Theme2 之后的 WinForm
在示例应用程序中,类 'Theme' 是基类,它有两个属性
1.BackGroundImage:保存表单的背景图像
2.TransperncyColor:保存表单的透明色
(如果需要,可以扩展该类,添加更多属性)
以及一个 MustOverride 方法
1.SetTheme(ByRef frmObj As Form):派生类必须重写此方法并实现主题。 在示例应用程序中,有两个派生类,名为“Theme1”和“Theme2”。 每个类都有不同的主题实现。
类 “Theme1" 专注于显示图 1 中所示的表单
而类 “Theme2” 专注于显示图 2 中所示的表单。
在类 Theme1 和 Theme2 的 SetTheme(ByRef frmObj As Form) 方法下面的代码是非常自解释的。