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

PocketPC 的漂亮按钮

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.94/5 (6投票s)

2006年11月29日

CPOL

2分钟阅读

viewsIcon

42694

downloadIcon

467

一个具有 3D 渐变效果的 PocketPC 按钮,仅使用 .NET Compact Framework。

引言

我找了很久都没有找到适用于 Pocket PC 且使用 Compact Framework 的预构建的圆角按钮类,因为 Graphics 没有 DrawArc 或类似的方法来快速实现这一点。我的控件在 Enabled = True 时显示为浅蓝色,在 Enabled=False 时显示为灰色。

What the button looks like when enabled with my default light-blue gradient.

背景

网上有很多关于如何使用 GDI 或 Java 实现此功能的资料,但我不想导入不必要的库,也不想处理一个已经很复杂的应用程序中的 API 调用。我希望使用控件已经使用的相同的 Drawing.Graphics 对象。我尝试修改来自多个来源的代码,但都无济于事;总会调用一个 .NET Compact Framework 中不存在的东西。最后,我使用 Graphics FillPolygon 方法创建了一个自定义控件,它工作得非常好。不过,对我来说,这确实是一次学习经历,因为这是我第一次需要手动绘制多边形。

使用方法

要使用此代码,只需将现有控件添加到您的项目中即可。如果您想更改背景颜色(仅在角落显示)等内容,则需要修改代码(除非您和我一样喜欢 Color.SteelBlue)。此外,通过替换 imagelist 中的当前渐变,您可以在运行时选择显示的颜色,使用 imagelist1.images(0) 作为“Enabled=True”渐变,并使用 imagelist.images(1) 作为 Enabled 设置为 False 时的渐变。另外,如果您想在设计时查看 Text 属性,则必须在 [Designer] 的底层代码中在设计时对其进行设置。

'Example From FrmStart.Designer.vb
'btnXit
Me.btnXit.Location = New System.Drawing.Point(3, 157)
Me.btnXit.Name = "btnXit"
Me.btnXit.Size = New System.Drawing.Size(216, 16)
Me.btnXit.TabIndex = 0
Me.btnXit.Text = "Exit"

关注点

  • 即使在大幅缩减的 Compact Framework 图形例程中,我们仍然可以提供视觉上令人愉悦的控件;虽然需要付出额外的努力。
  • 控件的当前默认大小设置为 216x16,因为这似乎很好地满足了我的 PDA 的宽度要求。
  • 我只在 Compaq IPAQ 和 .NET 的 PocketPC2002 模拟器上测试过此代码。如果您发现任何问题,请修复它们!我的代码按原样发布,因此希望您在使用过程中对其进行更改并使其成为您自己的。

历史

  • 发布于 2006 年 11 月 29 日。
© . All rights reserved.