如何为我的.NET Windows应用程序提供专业的外观和感觉?

时间:2009-12-26 08:44:59

标签: c# .net winforms user-interface

我使用WINFORMS而非WPF。

我只知道基本的c#.net gui编程。我不想要传统的窗户外观。我希望拥有自己的自定义外观(例如gtalk,防病毒软件,媒体播放器,谷歌浏览器)。

实际上我受谷歌PICASA软件的启发。这很棒。我想做那样的事情。我怎么能这样做?如果有什么我应该学习的请指出我。

此外,我可能必须编写自己的自定义控件(如修改后的树视图等)。我想。请提供一些很好的学习资源。

6 个答案:

答案 0 :(得分:19)

This article描述了如何绘制自定义窗口。作者还展示了如何绘制非矩形窗口。

如果您可以使用WPF而不是Windows Forms,这是一篇关于自定义窗口绘图的好文章:
http://www.codeguru.com/csharp/.net/net_wpf/article.php/c16379/

在SO上还有一个问题有一些好的答案: Creating custom forms in WPF?

<强>更新
我认为从程序员的角度来看,皮肤和自定义绘图很有趣,但我也认为用户几乎没有任何好处。
您正在开发的平台的创建者可能会花费大量精力设计他们的窗口工具包 如果您只想更改应用程序的某些视觉方面,还应考虑到您可能会错过UI设计的一些重要的其他方面:

  • 稠度
  • 可访问
  • 美学(如果你太过分了 效果,渐变,...)
  • 国际化
  • ...

在开发Windows时,您也失去了操作系统本身的皮肤功能。我认为Windows的新版本附带的一些皮肤非常好。

答案 1 :(得分:8)

您可以尝试以下任何一项:

telerik

telerik interface

Syncfusion

alt text
(来源:componentsource.co.jp

或其他组件。

他们确实让你的用户界面漂亮。

编辑:如果您想研究他们是如何做到的,您可以购买源代码 - 以及文档并从那里了解。

答案 2 :(得分:3)

有一些商业控制库可用。 我可以推荐Krypton Suite。它由免费的Krypton Toolkit(包含许多可换肤控件)和其他非自由控件(Navigator,Ribbon,Docking,Workspace)组成。它有一些内置的调色板和渲染器,使您可以使您的UI看起来像Office 2010,Office 2007,Office 2003,......

答案 3 :(得分:2)

您想要寻找+winforms +skinning。我没有尝试过这些,但first hits看起来不错。最实惠的皮肤工具将付费。

答案 4 :(得分:1)

根据您的说法,您希望开发自己的自定义控件。你有一些框架,如Qt,可以使用Direct3D硬件加速图形。它还有一个Visual Studio插件。有一个免费的LGPL版本和它的商业版本。

我记得Qt是因为你提到过Picasa,据我记得,我听说过Picasa用户界面是通过Qt编写的。

答案 5 :(得分:1)

您可以尝试使用“SetWindowRgn(..)”为窗口设置任意区域。这可能包括给出圆角矩形形状到形状奇怪的形状! 看看这个:Link

如果您在Vista(启用aero)中工作,还有另一种选择,即您可以在此处查看DwmExtendFrameIntoClientArea(..)函数:link text

您可以将表单的边框样式设置为“none”,然后继续创建自定义表单!然后,您可能必须创建自定义按钮来执行关闭,最小化,最大化等任务。您甚至可能需要为拖放事件编写代码。

对于背景,您可能需要查看渐变填充以获得很好的效果,否则您可以使用漂亮的图片作为背景..!但是除非你有非常好的照片,否则后一种选择并不好。