【问题标题】:How do I give professional look and feel to my .NET windows application?如何为我的 .NET Windows 应用程序赋予专业的外观和感觉?
【发布时间】:2010-12-30 02:16:11
【问题描述】:

我使用的是 WINFORMS 而不是 WPF。

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

其实我的灵感来自于 google 的 PICASA 软件。这很棒。我想做这样的事情。我该怎么做?如果有什么我应该学习的,请指出我。

我猜我可能还需要编写自己的自定义控件(如修改后的树视图等)。请提供一些好的学习资源。

【问题讨论】:

  • Picasa 可在许多平台上使用,而 Google 是一家大公司。因此,他们可能希望 Picasa 用户界面在所有平台上保持一致。即使对于大型软件项目,最好花时间为每个 IMO 平台微调 UI。
  • 这个问题可能是主观的。不同的开发者/设计师/用户对专业性的理解不同。
  • @Victor :可能自定义外观和感觉是原始发帖人想要表达的。那么这可能不是主观的。
  • 鉴于 WPF 为您提供了更多(比 WinForms)对应用程序每个元素的“外观”(透明度、形状、动画等)的图形控制,为什么你不会在这里选择 WPF 吗?您仍将使用 C# 进行编程:当然,您在 XAML 中“编程”的程度,或在 XAML 和 C# 之间来回切换的程度,将因个人偏好和要求而异。亲爱的,在这里陈述你的目标对你来说很有价值:你想在一年内成为一名 C# 程序员?祝你好运!

标签: c# .net winforms user-interface


【解决方案1】:

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

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

还有一个问题,这里有一些很好的答案: Creating custom forms in WPF?

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

  • 一致性
  • 可访问性
  • 美学(如果你做得过火 效果,渐变,...)
  • 国际化
  • ...

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

【讨论】:

  • 这个答案的第一部分很好,但第二部分(考虑对用户的好处)更好;-p
  • +1 指出坚持平台的原生 UI 很好。
  • +1 另一个提到自定义 UI 的投票可能很有趣,但对最终用户几乎没有真正有用.....
  • 但是,Expression Studio 应用程序(Blend、Design、Encoder、Web 等)、Visual Studio 2010,它们有自己的自定义 UI,但看起来与本机 UI 外观和感觉。问题是,这些应用程序之间存在一致性,您会觉得它们是套件的一部分。只是一些想法。
  • 这些都是 Microsoft 应用程序,因此它们定义了平台的外观和感觉。他们的 UI 元素可能会成为下一代“标准”元素。我在 OS X 上也经历过同样的事情。(iTunes 似乎是 Apple 的 UI 沙盒)
【解决方案2】:

您可以尝试以下任何一种方法:

telerik

Syncfusion


(来源:componentsource.co.jp

或其他组件。

它们确实让你的 UI 很漂亮。

编辑:如果你想研究他们是如何做到的,你可以购买源代码——连同文档并从那里理解。

【讨论】:

  • 很好,但我不想为此使用任何工具。我想自己学写这些。
  • 您如何购买他们的源代码——连同文档并从那里理解?这将是 IMO 最快的方式。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    您想查找+winforms +skinning。我没试过这些,但first hits 看起来不错。大多数像样的剥皮工具都会得到报酬。

    【讨论】:

    • 我不想为此使用软件。我想自己写作和学习。
    【解决方案5】:

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

    我记得 Qt 是因为你提到了 Picasa,据我所知,我听说 Picasa UI 是通过 Qt 编写的。

    【讨论】:

      【解决方案6】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        • 1970-01-01
        • 2012-06-17
        • 1970-01-01
        相关资源
        最近更新 更多