我已经使用WPF一段时间了,我正在尝试重现他们办公套件的一些漂亮的UI功能。虽然在 WPF 中非常简单,但我想知道如何使用 MFC 功能包来完成它(我可能不得不使用它,因为我的公司尚未批准使用 WPF)。由于Fluent UI是在Office 2007中引入的,我想知道Microsoft是否真的在VS2010或Expression Blend以外的其他任何东西中使用WPF,特别是在Office 2010中。我希望这个问题不是题外话。
> Office 2010 不使用 WPF。 事实上,它也不使用 MFC。 Office 传统上使用自定义 UI 工具包,甚至在功能区出现之前就是如此。 但是,您只需要一个主要的第一方应用程序即可确保 WPF 作为 UI 平台的可行性。 当该应用程序恰好是Visual Studio时尤其如此,因为每天都有成千上万的Microsoft员工使用Visual Studio。
但这并不意味着 WPF 是与功能区一起使用的最佳 UI 技术。 Microsoft WPF 功能区错误地处理了许多极端情况,我测试过的所有主要商业托管代码功能区(WPF 或 Winforms)也是如此。 复制Office功能区非常困难 - 有很多难以预料的微妙之处,只有在用户遇到极端情况时才会出现。
Office 功能区花费了 200 多个工年的工作,由数以万计的 beta 测试人员使用。 (Jensen Harris在UX09上估计,Office UI团队大约有15名PM,30名开发人员,30名测试人员,以及六名设计师和UI研究人员。 它是目前测试最好的功能区,但不幸的是,它是Microsoft以外的开发人员无法使用的功能区。
第二个最可靠的功能区框架可能是 Windows 7 功能区,它由 Paint 和写字板使用。 这个在Windows 7 SDK中可用,并已向后移植到Vista。 本机代码和 GDI,因此它面向C++开发人员。 请注意,它也没有绑定到 MFC 中。
据我所知,它不以任何方式使用 WPF。事实上,其中大部分仍然是用C++写的。实际上,Microsoft在WPF中发布的唯一"大"应用程序是Visual Studio 2010和Expression Blend。
你确实意识到WPF(使用.NET框架)只是win32和com(direct2d等)上的一层,所有这些都可以从普通的旧C++访问,更不用说MFC。他们已经从 2007 年开始C++了所有的功能区代码,因此制作 2010 年的界面并不难。
为了回答你认为你要问的问题,不,Office 不使用 WPF。只有Visual Studio使用它。