2012-03-02 119 views
15

当我写这个问题时,在.NET 4.5 beta版发布后的两天,MSDN上的What's New in WPF 4.5 Version 4.5 Beta页仍然列出了“将WPF与win32图形用户界面集成”作为WPF 4.5提供改进的区域。该页面讨论HwndHost上的两个新属性:IsRedirectedCompositionMode。另外,顶级what's new in .NET 4.5 beta页面提到这种集成是一项新功能。WPF 4.5中的空域支持已经绝对降级了吗?

再次,当我写这篇文章时,这两个项目有页面。你有IsRedirected hereCompositionMode here。 (更新2014年1月27日:原始页面不再可用,所以我搬到这些链接指向互联网档案复印件)

但是,如果你去到文档的HwndHost itself,无论这些属性是当下。他们似乎也不在Visual Studio中。

因此,看来传言是真实的 - 看起来interop的空域改进已经被取消。但是,如果任何来自微软的人正在阅读这篇文章,那么a)我们可以得到肯定的确认,并且b)上面提到的页面可以更新以停止获得我们的希望。

更新2014年1月27日:我已经更新了IsRedirected和CompositionMode的链接,指向Internet Archive,因为原始链接现已停止。另请注意,“新增功能”页面不再提及,因为这些链接现在用于最终版本。当我最初在this archived pagehere处提问这个问题时,您可以看到当前的旧页面。

+0

我不明白标题中的“空域”的含义。你能解释一下吗? – 2012-03-02 17:18:13

+0

这真的是个问题吗?或更多的FYI? – GWLlosa 2012-03-02 21:13:45

+9

这是一个问题。空域是WPF中一个非常着名的问题 - 它指的是两个不同的UI技术(例如经典的Win32和WPF)不能共享窗口中的像素。 WPF 4.5吹捧的最大新功能之一是空域限制最终将被取消。现在它突然从文档中消失了。我希望来自微软的人可以证实或否认它是否真的走了,因为这个以前的主要标题功能现在显然处于停滞状态 - 没有正式退出,但也没有明确的工作。 – 2012-04-02 16:18:34

回答

5

对“Bring back the HwndHost.IsRedirected and CompositionMode”的建议发布在Visual Studio UserVoice上。

微软拒绝了,他说:

在这个时候,我们将无法向功能添加到WPF和.NET Framework。

它看起来像您链接到的MSDN页面已被关闭。

+0

我已更新链接以引用Internet Archive中的副本,因此,如果用户有兴趣,人们可以按照考古学进行查看。 – 2014-01-28 08:33:42

11

Dwayne Need有一个相当不错的blog post描述了非凡的努力,他们试图使其工作。没有什么微妙的,他们例如最终拦截200多个GDI函数,让他们与WPF渲染模型一起玩。结果是预期的:

当我们经过广泛的审查后,我们决定实际上无法发布此功能时,您可以对我的心碎成像。我们担心的是,我们不得不对系统进行深入研究,并且难以解释 - 更不用说维护。尽管我们要求开发人员明确地为每个HwndHost启用此功能,但我们认为他们遇到的问题会困扰他们,并且培训我们的支持工程师来处理升级会非常困难。即使在我们开发的最后阶段,我们仍然在苦苦寻找一个长尾巴和性能问题。

这正是需要由Win32平台团队完成的深层系统集成,正式批准和支持。使用Win8,我们开始看到在这个空间中的一些增量改进,正如之前在DirectComposition API中提到的那样。不幸的是,我们仍然无法建立同样丰富的复合体验。

Windows小组是否会承诺提供这种整合现在是一个悬而未决的问题。他们肯定把钱投在了一匹非常不同的马上,并且在WinRT上花了很多功夫,这是一个受WPF启发的渲染模型,但没有做任何事情来让它变得更好。如果要解决这个问题,那么请致电去那里。

检查博客帖子的其他部分。它在处理现有空域问题方面具有出色的,尽管它是高层次的建议。