我一直在寻找一个关于如何发布具有当今“顶级”外观的应用程序的良好解决方案/提示。
众所周知,在使用Windows进行编码时,我们通常会获得Windows风格的颜色/按钮/列表等。它们看起来很丑陋。
当我们决定要销售应用程序时,人们希望它看起来很好 - 显然是因为他们付了钱。
所以问题是:
我不相信程序员会做那些“透支”的提示和技巧,完成一个控件需要很长时间。此外,我宁愿花时间编写内部应用程序的东西而不是使用per-control绘制..
我不知道,但是有一个截止日期,现在经过google上所有那些'ownerdrawed'控件之后 - 我发现这不是问题......当程序员需要时,必须有其他方便的东西使他的应用程序看起来高端!。
请帮忙,任何工具?有小费吗 ?任何事情......?
很少有例子,他们如何实现这一目标:
http://fooh.pl/pokaz/3198197337370da4cdfdebf0ae13933c_openfm.jpg
答案 0 :(得分:2)
例如,您可以查看Qt。除了基本功能之外,您还可以根据自己的喜好style {{3}}所有小部件(以非常类似于CSS的方式),并根据您的内容创建“主题”。
对于链接到的图像中窗口的非矩形外观,您可以使用Qt的setMask()功能。
答案 1 :(得分:2)
听起来你想要一个完全可换肤的应用程序,但没有比典型的Win32控件更多的努力。 这个是不可能的。但一般来说,剥皮并不困难,只比你愿意花费的时间更长。
你的下一个问题是:一旦你有一个皮肤应用程序,你需要一个专业的平面设计师来开发一个良好的皮肤。太多的小项目开发人员认为他们可以制作自己的皮肤,但它几乎总是看起来很糟糕。如果没有设计专家,这种性感的专业外观是不可能的。
最后,无论您最终使用哪种花哨的自定义皮肤,功能都可能需要自定义。也就是说,如果你想要非矩形控件或动画,这些都是你必须花时间去开发的东西。
使用像Qt这样的工具包可能是一项不错的投资。但无论你如何分割它,这都是需要花费很多精力的细节。
除此之外:由UI专家正确设计,默认的Windows控件看起来非常专业。使用本机Windows控件有很多好处,在尝试重新发明轮子之前,你应该仔细考虑一下:
答案 2 :(得分:1)
该应用程序中可能没有一个控件。
相反,整个事物被渲染为图像。有一个背景图像,以及一些覆盖图像(大多数是透明的),以提供鼠标悬停突出显示,禁用控件等。唯一没有预渲染的是当前曲目和播放列表信息,这是具有特定字体的纯文本。
可以使用另一张图片执行命中测试。
程序员几乎没有工作来实现花哨的设计,这一切都是由艺术家完成的(和编辑器中的Photoshop支持图层等程序一样,可以很容易地构建所有的叠加层。)
当然,缺点是按钮的行为与普通的Win32按钮完全不同。它们不支持键盘焦点(虽然可能有热键),只需在mouseup上激活即可。可访问性是可怕的,屏幕阅读器没有信息,应用程序不尊重系统字体大小设置。为了使视力不佳的人可以读取UI,需要完全不同的皮肤。
答案 3 :(得分:1)
C ++团队整理了一个名为Hilo的示例(就像夏威夷的地方一样),它不使用任何框架(没有ATL,没有MFC),而且都是本机代码。它使用了许多Windows 7功能和一些令人愉快的图形和动画。所有代码和设计都可用并记录在案。看一看。
答案 4 :(得分:1)
如果您想挖掘任何特定应用程序的封面,您可以启动Spy实用程序并查看界面被分解为多少控件:
I want Spy++ but I don't have Visual Studio
Is there a Spy++ like utility for WPF?
例如......以皮肤模式窥探Windows Media Player会发现有一个名为WMP Skin Host
的窗口类,您可以看到它有零子窗口。 (常规的非皮肤模式被分解为一些列表框和按钮等。)
根据我的经验,当人们重新实施太多试图“看起来很酷”时,“现代”皮肤通常是一场灾难。它阻碍了自动化(通过诸如AutoIt之类的事情),更不用说残疾人的accessibility features了。此外,如果您没有使用基于操作系统的主题API,那么今天看起来很酷的内容将不会保持最新状态。
(注意:因为我一般都是Qt的粉丝,我建议调查QStyle and QStylePainter。但这更像是“主题”而不是“剥皮”。) < / p>
我会非常谨慎地在应用程序中使用皮肤,除非我发现我正在开发一个绝对需要它的市场(如音乐播放器)。
答案 5 :(得分:0)
通常,您可以使用GDI(+)渲染渲染自定义控件。
答案 6 :(得分:0)
如果你不介意进入C ++ / CLI,有WPF,它提供了对用户定义的样式和模板的非常广泛的控制。
答案 7 :(得分:0)
你可能想要好好看看SkinCrafter。它成熟,稳定,非常灵活。我不再使用它,但我对它的体验非常愉快。
答案 8 :(得分:0)
您可以使用外部布局引擎,例如来自terra informatica的HTMLayout,这个也使用了一些专业软件。