如何使用C#在WPF中开发类似谷歌Chrome浏览器的应用程序

时间:2010-11-08 08:31:25

标签: c# wpf xaml google-chrome windows-7

I am trying to develop an windows application like Google chrome Browser in WPF

使用C#。我在创建自己的自定义窗口和在该窗口的标题位置的位置放置标签时遇到问题。 请建议我如何去做,有什么工具吗?

请指导我..........

更新:

嗨朋友感谢您的积极回复,我也按照您提供的链接和您说的方式,但我仍然怀疑开发应用程序,请给我一些更多的想法,我可以通过使用Google Chrome开发此应用程序控制。我想给我的应用程序谷歌浏览器一样的外观和感觉.....

3 个答案:

答案 0 :(得分:6)

谷歌Chrome实际上是自定义绘制窗口的非客户区域,以删除它认为多余的东西,如标题栏。这就是它如何获取选项卡来替换窗口的标题栏,就像Microsoft Office在文档窗口的标题区域中放置“珍珠”和快速访问工具栏一样。

要在WPF中执行类似操作,您可能会发现本文很有用:http://blogs.msdn.com/b/wpfsdk/archive/2008/09/08/custom-window-chrome-in-wpf.aspx

请记住,每当您重新实现标准的Windows chrome时,您将不得不处理Windows通常对您透明的一些内容,例如调整大小,最小化,最大化,移动和关闭窗口。

值得考虑的是,Google Chrome和Microsoft Office应用程序(以及其他应用程序)的行为会有所不同,具体取决于Aero Glass和桌面窗口管理器(DWM)是否存在/启用。当缺少这些东西时,您将不得不确保应用程序正常降级。在你投入所有时间和精力在你的应用程序中做这样的事情之前,我建议你确定你能真正为用户提供必要和有益的令人信服的理由。

答案 1 :(得分:6)

我刚刚为WPF完成了类似Google Chrome的Tab控件。您可以在https://github.com/realistschuckle/wpfchrometabs找到该项目,并在

上找到描述该项目的博文

希望有所帮助!

答案 2 :(得分:2)

Chrome似乎在标题栏区域的有限区域内绘制标签。当打开足够的选项卡时,现有选项卡控件的宽度会减小,以便为新选项卡腾出空间。

我建议您采用类似的策略,在适当大小的矩形中绘制标签,该矩形不与标题按钮(最小化,最大化关闭)相交,并在区域变满时减小现有标签标题的宽度

[更新1 ]

虽然我没有看到你的代码,但我建议这样做是因为标题标题(标题栏区域中显示的部分)和标签页(覆盖大部分屏幕的部分)都属于同一部分控制并作为一个单元绘制,因此当您尝试在区域中绘制标题时,标签内容也会重新绘制。

如果是这种情况,则需要将选项卡标题和内容页面绘制为单独的控件,并在选项卡中保留一些状态,指示选择选项卡时哪个选项卡页应该可见。