如何在C#中创建光泽按钮?

17

我想使用C#的GDI +或Silverlight创建光泽按钮,有什么想法或技巧可以创建光泽按钮吗? 就像下面的图片:

我更感兴趣的是GDI +解决方案。

http://i.stack.imgur.com/ZguQG.jpg


它们只是在 Photoshop 和类似软件中创建的图片。 - Hans Passant
7
@hashi 我的前同事 Dave Crawford 现在在微软工作,他有一些类似这样的示例:http://blogs.msdn.com/b/dave/archive/2008/10/06/dave-s-glossy-controls-for-silverlight-2-released.aspx - Marc Gravell
@Marc Garvell 你是指这篇博客吗?(http://blogs.msdn.com/b/dave/) - Shahin
@hashi 请审核此文章。 http://www.codeproject.com/KB/expression/ExpressionBlendButtons.aspx - Shahin
1
@shaahin 是的,我已经编辑好了,但还是谢谢你查看。 - Marc Gravell
您可以使用此文章中的按钮:使用GDI+增强的GlassButton - Giorgi
5个回答

15

微软应用兼容性专家Chris Jackson编写了这篇关于.NET(即C#和GDI+)的文章。

 

enter image description here
Windows Forms凝胶按钮:第一版修订

 

enter image description here
Windows Forms凝胶按钮:第二版修订

 

enter image description here
Windows Forms凝胶按钮:第三版修订

所有代码都在那里,并仔细考虑了以下问题:

  • 高dpi下的缩放
  • 性能和位图缓存

很酷,我从未见过,你应该得到正确的答案 :) - Rebol Tutorial

12

这里有示例

本文演示了如何使用WindowsVistaRenderer以及它是如何创建的...

我发现按钮绘制有不同的层次...

一个光泽效果被画在按钮的北面。绿色表示几乎透明的颜色...

现在,我们绘制这些图层的顺序至关重要。顺序如下:

  1. 外边框
  2. 按钮背景颜色(如果按钮被选中)
  3. 光泽效果
  4. 边框
  5. 按钮填充光泽强调
  6. 内边框
  7. 发光
  8. 按钮的文字和图片...

谢谢,这是一个不错的链接,但我正在寻找更专业的教程或示例(最好是GDI+)。 - hashi
谢谢大家,这是我第一次得到6个赞👍👍👍👍👍👍。 - Rebol Tutorial
这是一篇不错的文章,但根据微软的消息来源,Vista中许多花哨的图形都是预先制作好的位图。使用预先制作好的位图(比如在Photoshop中)来创建良好的用户界面要比在程序代码中重新发明轮子更省时。 - David Anderson

3
在Silverlight中,使用画笔创建按钮非常简单。可以参考以下链接获取一些好的样例:使用WPF中的径向渐变画刷创建光泽效果的画刷
你也可以使用Microsoft Expression Design来创建这些按钮,或者从Adobe Illustrator或Adobe Photoshop导入它们,然后将它们导出为Xaml格式。

1

您还可以查看这篇CodeProject文章,它是一个很好的教程,展示了如何在Expression Blend中制作一些光泽圆形按钮:Silverlight中的玻璃球按钮

此外,CodeProject上还有许多使用GDI+或Expression Blend制作的与玻璃按钮和光泽效果相关的项目。


0

你也可以使用Expression Blend。


是的,他也可以。但我认为更好的做法是进行更详细的描述。 - Shahin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接