9

我一直在到处寻找关于如何发布具有当今“高端”外观的应用程序的良好解决方案/提示。

众所周知,在使用 windows 编码时,我们通常会得到 windows 风格的颜色/按钮/列表等。它们看起来和感觉都很丑。

当我们决定要出售一个应用程序时,人们希望它看起来不错——显然是因为他们已经为此付出了代价。

所以问题是:

  • 今天如何实现良好的应用程序外观?
  • 楼主画的?( 真的?? )
  • 自定义控件?
  • 一些很好的非免费库可以完成“肮脏”的工作并“剥皮”您的应用程序?

我不相信程序员会做那些“透支”的技巧和窍门,完全完成一个控件需要很长时间。此外,我宁愿花时间编写内部应用程序的代码,也不愿玩弄每个控件的绘图。

我不知道,但有一个截止日期,现在在谷歌上浏览了所有那些“所有者绘制”的控制之后——我想这不是问题。当程序员需要做他的时,必须有其他方便的东西应用程序看起来高端!

请帮忙,有什么工具吗?有小费吗 ?任何东西.. ?

几个例子,他们如何实现这种外观:

http://fooh.pl/pokaz/3198197337370da4cdfdebf0ae13933c_openfm.jpg

4

9 回答 9

2

例如,您可以看看Qt。除了其基本功能外,您还可以根据自己的喜好设置所有小部件的样式(以与 CSS 非常相似的方式),从而为您的内容创建“主题”。

对于您链接到的图像中窗口的非矩形外观,您可以使用 Qt 的 setMask() 功能。

于 2011-07-16T13:48:58.643 回答
2

听起来您想要一个完全可换肤的应用程序,但只需要典型的 Win32 控件即可。是不可能的。但一般来说剥皮并不难,只是比你愿意花费的时间要多。

你的下一个问题是:一旦你有了一个皮肤应用程序,你需要一个专业的平面设计师来开发一个好的皮肤。太多的小项目开发人员认为他们可以制作自己的皮肤,但它几乎总是看起来很糟糕。如果没有设计专家,您想要的这种性感的专业外观是不可能的。

最后,无论你最终得到什么样的定制皮肤,功能都可能需要定制。也就是说,如果您想要非矩形控件或动画,这些都是您必须花时间开发的东西。

使用像 Qt 这样的工具包可能是一项不错的投资。但这种细节无论你如何分割都需要付出很多努力。

有点题外话:由 UI 专家正确设计,默认的窗口控件看起来非常专业。使用本机 Windows 控件有很多好处,在尝试重新发明轮子之前,您应该仔细考虑一下:

  1. 辅助功能,如键盘导航、屏幕阅读器、高对比度。您是否真的要尝试重新发明 Windows 通过控件提供的所有辅助功能?或者是否值得将残疾人排除在使用您的应用程序之外,以便您可以使用皮肤(更不用说使用辅助功能的非残疾人)?
  2. 调整大小。您的皮肤是否意味着禁用任何窗口大小调整?再次,这值得吗?
  3. 有些东西不能很好地剥皮。例如滚动条和菜单。一些开发人员重新发明了它们(滚动条特别难以重新发明),其他开发人员只是让它们不剥皮。
  4. Windows 主题。Windows 主题不仅仅是开始菜单的颜色;它应该决定整个操作系统的外观。使用标准 Windows 控件允许用户使用内置机制来选择外观。
于 2011-07-16T14:11:06.583 回答
1

该应用程序中可能没有单个控件。

相反,整个事物被渲染为图像。有一个背景图像,以及一些覆盖图像(大部分是透明的)以提供鼠标悬停突出显示、禁用控件等。唯一没有预渲染的是当前曲目和播放列表信息,这是具有特定字体的纯文本。

可以使用另一个图像执行命中测试。

程序员几乎不做任何工作来实现花哨的设计,这一切都是由艺术家完成的(像 Photoshop 这样的程序在编辑器中支持图层,使得构建所有叠加层变得非常容易)。

当然,缺点是按钮的作用与普通 Win32 按钮的作用不同。它们不支持键盘焦点(尽管可能有热键)并且只需在鼠标上移时激活。可访问性是可怕的,没有屏幕阅读器的信息,应用程序不尊重系统字体大小设置。为了使视力不佳的人能够阅读 UI,需要完全不同的皮肤。

于 2011-07-16T14:06:16.033 回答
1

C++ 团队整理了一个名为Hilo的示例(就像夏威夷的地方),它不使用任何框架(没有 ATL,没有 MFC),并且都是本地代码。它使用了许多 Windows 7 功能和一些令人愉悦的图形和动画。所有代码和设计都可用并记录在案。看一看。

于 2011-07-16T14:07:40.650 回答
1

如果您想深入了解任何特定应用程序的内容,可以启动一个间谍实用程序并查看界面已分解为多少个控件:

我想要 Spy++ 但我没有 Visual Studio

WPF 是否有类似 Spy++ 的实用程序?

例如...在皮肤模式下窥探 Windows Media Player 发现有一个名为 的窗口类WMP Skin Host,您可以看到它有零个子窗口。(常规的非蒙皮模式分为一些列表框和按钮等。)

以我的经验,当人们重新实现太多以尝试“看起来很酷”时,“现代”蒙皮通常是一场灾难。它阻碍了自动化(通过AutoIt之类的东西),更不用说残疾人的辅助功能了。此外,如果您不使用基于操作系统的主题 API,那么今天看起来很酷的东西将不会保持最新状态。

(注意:因为我一般是 Qt 的粉丝,所以我建议研究QStyle 和 QStylePainter。但这更像是“主题化”而不是“蒙皮”。)

我会非常谨慎地在应用程序中使用皮肤,除非我发现我正在为一个绝对需要它的市场(如音乐播放器)开发。

于 2011-07-16T14:07:54.397 回答
0

通常,您可以使用 GDI(+) 渲染来渲染自定义控件。

于 2011-07-16T13:49:01.343 回答
0

如果您不介意进入 C++/CLI,可以使用 WPF,它对用户定义的样式和模板提供了相当广泛的控制。

于 2011-07-16T13:52:22.503 回答
0

您可以使用外部布局引擎,例如来自 terra informatica 的 HTMLayout,这个也使用了一些专业软件。

于 2014-03-22T17:31:12.823 回答
0

您可能想好好看看SkinCrafter。它成熟、稳定且非常灵活。我不再使用它,但我对它的体验非常愉快。

于 2011-07-16T14:02:40.310 回答