目前有许多Windows应用程序不使用本机Windows控件,没有标准窗口框架,通常看起来不同。有哪些推荐的技术来创建这样的接口?
答案 0 :(得分:2)
从设计方面来说,如果您的界面不符合文档标准(如Windows UI指南),则必须直观。我认为新一代Windows应用程序将以类似于早期Web的方式经历一个成长阶段。过了一段时间,一些标准或共同主题将会发展。
答案 1 :(得分:2)
有充分的理由不这样做。就像那样,你很可能不会比Windows做得更好。 (也许它会看起来更好(在您看来),但它会表现吗?)。或者说这不是大多数用户所期望的。或者它在Windows 2011上看起来像s ****。
那说,这并不难。您只需处理WM_NCPAINT或WM_NCHITTEST等WM_NC *事件。 NC代表非客户(窗口区域)。当然,在Vista / Win7上有一个技巧(你必须向DWM宣布它)。
答案 2 :(得分:1)
从实现方面来说,您可以使用WPF(Windows Presentation Foundation),假设您为.NET编写代码:)它有很多可换肤的控件,可能看起来像本机的,可能不是。
答案 3 :(得分:0)
你能给我们一些样品申请吗?一些不使用本机Windows控件的应用程序使用跨平台GUI库,如Qt for C ++或Tkinker。这些在不同平台上保持相同的外观。
我不建议故意让用户界面不同。你不能获得太多收益。你的控件几乎总是比本机控件更笨,你需要用户学习新的东西。现在,如果你是控件添加一个足够大的值,值得用户的时间,它就可以了。但是让他们习惯不同的按钮很少值得。
答案 4 :(得分:0)
我不确定这是否能回答你的问题。
您可以使用第三方皮肤控件,例如Infragistics或SkinSoft。 但是像布巴一样,我建议去WPF。
答案 5 :(得分:0)
模型 - 视图 - 控制器!它在网络应用程序或其他任何地方都很有价值。确保将程序中生成自定义UI的部分与程序中闪烁BIOS的部分分开。
答案 6 :(得分:0)
我知道这个问题已有10年历史了,但是没有答案提到使用Visual Studio中的选项,也不知道当时是否存在。
有一个选项可以删除Visual Studio中的窗口边框(称为borderStyle)。这就是使用C#的最简单方法。删除边框后,您要做的就是创建一个新界面。如果您正在寻找使用C ++进行的操作,我认为您需要使用DWM。我将举一个我在这里找到的例子。
https://github.com/melak47/BorderlessWindow
另一个示例(也许没有DWM?没有测试):
有很多人不鼓励在此线程中执行此操作,但是没有理由不这样做,如果您知道自己在做什么,那么您的应用程序看起来会很好。