65.9K
CodeProject 正在变化。 阅读更多。
Home

支持用户定义主题的按钮和浮动容器

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.79/5 (13投票s)

2003年12月2日

2分钟阅读

viewsIcon

53056

downloadIcon

337

提供 XP 外观和感觉,您拥有最终的控制权。

Sample screenshot

引言

似乎每个接触到 DotNet 的开发者都想制作一些按钮。然而,这些按钮并非整体的一部分。我在这里尝试做的是创建一个主题系统,供开发者用来绘制他们的控件。当用户看到采用该主题系统的控件时,他们会觉得它“属于”界面,也就是说,它基本上以与界面中所有其他元素相同的风格和配色方案绘制。

我正在寻找其他合作者,最初使用 VB.NET,其他开发者将其转换为其他 .NET 语言。目标是开发一个完整且实用的控件范围,这些控件都已采用该主题系统。

详细说明

可能需要详细研究 CtlButton CtlFloatbar 源代码,才能理解如何采用主题,但快速查看附带的演示程序,在运行前只需进行少量修改,就能立即演示目标。

该代码使用了最少的 API 技术,并使用 .NET 1.0 以 VB.NET 编写。它通过使用 VisualTheme 类调用 Graphics 类,以提供影响控件绘制方式的关键信息。例如,在打开窗体时,主题可以决定窗体的背景颜色。主题还控制按钮的 3D 效果,甚至支持像 Windows 自己的标题栏中看到的标题按钮。在这个例子中,主题影响按钮控件的边框,以便用户可以看到哪个是默认(接受)按钮,哪个是取消/中止按钮,哪个按钮具有焦点,以及鼠标指向哪个控件。

该系统还演示了一个绘制控件下方阴影的原始系统。VisualTheme 类也被用来执行这项任务,它速度慢,但所有这些都是为了演示一个概念,希望其他人能协助我完成它。

结论

欢迎通过 dev@bobbieandchris.com 发送评论以及合作意向。所有权在这里不是问题,但质量是,所以让我们为共同利益而努力。

© . All rights reserved.