2012-03-02 4 views
15

Al momento de escribir esta pregunta, 2 días después de que se lanzara la versión beta de .NET 4.5, la página What's New in WPF 4.5 Version 4.5 Beta en MSDN aún muestra "Integrando WPF con Win32 Graphical User Interfaces" como un área en la que WPF 4.5 ofrece mejoras. Esa página habla sobre las dos nuevas propiedades en HwndHost que admiten esto: IsRedirected y CompositionMode. Además, la página de nivel superior what's new in .NET 4.5 beta menciona esta integración como una nueva característica.¿Se ha eliminado definitivamente la compatibilidad del espacio aéreo en WPF 4.5?

Nuevamente, mientras escribo esto, hay páginas para esos dos elementos. Tienes IsRedirected here y CompositionMode here. (Actualización 27 de enero de 2014 a:. Páginas originales ya no está disponible, por lo que me he movido estos enlaces para que apunte a las copias de Internet Archive)

Sin embargo, si vas a la documentación para HwndHost itself, ninguna de esas propiedades es presente. Y tampoco parecen estar en Visual Studio.

Parece que los rumores son ciertos, parece que las mejoras del espacio aéreo para la interoperabilidad se han eliminado. Pero por si acaso alguien de Microsoft está leyendo esto, sería bueno si a) pudiéramos obtener una confirmación positiva yb) las páginas mencionadas anteriormente pudieran actualizarse para dejar de tener esperanzas.

Actualización 27 de enero de 2014: He actualizado los enlaces para IsRedirected y CompositionMode para apuntar al Archivo de Internet, porque los enlaces originales ahora están muertos. También tenga en cuenta que las páginas Novedades ya no mencionan esto porque esos enlaces ahora son para la versión final. Puede ver las páginas anteriores que estaban actualizadas cuando originalmente hice esta pregunta en this archived page y here.

+0

No entiendo el significado de "Espacio aéreo" en el título. ¿Podrías explicar? –

+0

¿Es esto realmente una pregunta? ¿O más de un FYI? – GWLlosa

+9

Es una pregunta. El espacio aéreo es un problema muy conocido en WPF: se refiere al hecho de que dos tecnologías de IU diferentes (por ejemplo, Win32 y WPF clásicos) no pueden compartir píxeles en una ventana. Una de las características nuevas más importantes promocionadas para WPF 4.5 fue que finalmente se iban a eliminar las limitaciones del espacio aéreo. Ahora, de repente, se ha desvanecido de los documentos. Esperaba que alguien de Microsoft pudiera confirmar o negar si realmente se había ido, porque esta característica de titulares previamente importante ahora parece estar en el limbo, no oficialmente descartada, pero tampoco definitivamente funcionando. –

Respuesta

5

Se ha publicado una sugerencia para "Bring back the HwndHost.IsRedirected and CompositionMode" en Visual Studio UserVoice.

Microsoft se negó, diciendo:

en este momento, no vamos a ser capaces de agregar la función de WPF y .NET Framework.

También parece que las páginas MSDN que ha vinculado se han eliminado.

+0

He actualizado los enlaces para hacer referencia a copias en el Archivo de Internet, para que la gente pueda seguir la arqueología de esto si están interesados. –

11

Hay una bastante buena blog post de Dwayne Need que describe el extraordinario esfuerzo de que intentaron para que funcione. Nada sutil, por ejemplo, termina interceptando más de 200 funciones de GDI para que jueguen junto con el modelo de representación de WPF. El resultado era de esperar:

Puede obtener imágenes de mi desamor cuando, después de una extensa revisión, decidimos que no podíamos enviar esta función. Nuestra preocupación era que teníamos que hackear demasiado profundamente el sistema, y ​​de una manera que era demasiado difícil de explicar, y mucho menos mantener. A pesar de que requerimos que los desarrolladores activaran explícitamente esta función para cada HwndHost, sentimos que los tipos de problemas que encontrarían serían desconcertantes para ellos y sería muy difícil capacitar a nuestros ingenieros de soporte para manejar las escaladas. Incluso hacia el final de nuestro desarrollo, estábamos luchando con una larga cola de errores y problemas de rendimiento.

Este es exactamente el tipo de integración profunda del sistema que debe realizar el equipo de la plataforma Win32, oficialmente sancionado y admitido. Con Win8, estamos empezando a ver algunas mejoras incrementales en este espacio, como se señaló anteriormente en la API DirectComposition.Desafortunadamente, todavía no es posible construir el mismo tipo de experiencia rica en composites que hemos desarrollado.

Si el grupo de Windows se va a comprometer a proporcionar este tipo de integración es ahora una pregunta abierta. Ciertamente pusieron su dinero en un caballo muy diferente y se esforzaron mucho en WinRT, un modelo de renderizado que ciertamente está inspirado en WPF pero que no hace nada para mejorarlo. Si va a abordarse, cuente con años para llegar allí.

Revise el resto de la publicación del blog también. Tiene consejos excelentes, aunque de alto nivel, para abordar problemas existentes del espacio aéreo.

Cuestiones relacionadas