Pregunta

Me han desarrollado una interfaz gráfica de usuario para una aplicación aleatoria usando WPF. Tengo un montón de controles de WPF caja establecidos en la ventana de la aplicación. No he personalizado nada, no hizo uso de mapas de bits, etc.

Al ejecutar mi aplicación y zoom usando la aplicación de la lupa en Windows 7 (Win key + Plus key, la interfaz gráfica de usuario ampliada se muestra pixels.I soy probablemente equivocado, porque no puedo explicarlo de otro modo, pero no se supone WPF para proporcionar vectorial como prestación de control?

Gracias por participar en la discusión.

Bonus Reading

¿Fue útil?

Solución

Antes, cuando Vista despachó por primera vez, y cuando estaba en WPF versión 3.0, zoom con el incorporado en la lupa que realmente hacen escala basada en vectores.

Esto dejó de funcionar cuando WPF 3.5 Service Pack 1 enviado. (Se trabajó en 3.5 SP1 antes.) La razón por la que trabajaba antes de eso es que el DWM (Escritorio del administrador de ventanas) - la parte de Windows responsable de presentar todo lo que ves en la pantalla - milcore.dll utiliza para realizar su prestación. Versión 3.0 y 3.5 de WPF también utilizaron este mismo componente para hacer - esto significaba que todo el contenido de WPF fue contenido nativo, por así decirlo. (De hecho, en Windows XP, que no tiene el DWM, milcore.dll es algo que pone de WPF en el sistema para su propio beneficio. Pero es incorporado en Vista y Windows 7.) Cuando estaba usando WPF milcore.dll a render en Vista, cualquier efecto aplicadas por el DWM como escalamiento se aplicaría también en la forma en que desea WPF -. lo que realmente hizo escala sin pixelación

Por desgracia, esto ya no es el caso. Y la razón es que WPF empezó a añadir nuevas funciones de representación. En 3.5 SP1, la nueva característica en cuestión era el apoyo a los sombreadores de píxeles personalizado. Para que la citada, Microsoft tuvo que lanzar una actualización a la MIL. (La capa media de Integración -. La parte que hace la representación real) Sin embargo, en realidad no estaban en condiciones de actualizar milcore.dll, porque eso es parte de Windows - es cómo todo lo que ves en la pantalla llega a estar en la pantalla. El lanzamiento de una nueva versión de milcore.dll efectivamente significa empujar a cabo una actualización de Windows. El calendario de lanzamiento para Windows es independiente de que para .NET, por lo que la única manera que el equipo de WPF razonablemente podría añadir nuevas características fue para enviar un nuevo MIL. (En teoría se podría haber hecho a través de Windows Update, pero desde WPF es ahora propiedad de una división diferente de Microsoft que Windows, no parece que la clase de cosa que suceda en la práctica.)

A partir de .NET 3.5 SP1, la MIL está en una DLL diferente llamado wpf_gfx_vXXXX.dll donde Vxxxx es el número de versión. En .NET 4.0, de wpf_gfx_v0400.dll.

La ventaja es que WPF llega a añadir nuevas funciones de representación con cada nueva versión, sin necesidad de Windows en sí a ser actualizada. La desventaja es que la prestación de WPF ya no es tan estrechamente integrado con Windows como lo fue brevemente cuando Vista enviado. Y el resultado es, como hemos visto, que el aumento no es tan divertido como lo que solía ser.

Otros consejos

La aplicación lupa implementa su propia representación de imagen con zoom, así que es por eso que están viendo píxeles. WPF hace uso de gráficos vectoriales, pero en esta situación no es la misma aplicación de WPF que está prestando la imagen ampliada.

Si utiliza algo así como Snoop WPF gráficos vectoriales se puede ver con zoom y escala de representación en acción.

supongo, Windows 7 lupa toma una instantánea de la aplicación real de interfaz de usuario en pantalla, y luego se magnifica en sí (no hacer un caso especial para aplicaciones WPF). Por supuesto, lo que se puede acceder es sólo los píxeles, no los gráficos vectoriales que trabaja detrás de la escena.

El windows-7-lupa se ha basado píxeles, pero hay una diferencia en el modo de lupa en función de un carnero Aero-tema está activo o no.

  • con el tema Areo el zoom está pixelada.
  • Areo sin tema del zoom se suaviza (borrosa).

Sólo con tema Areo otras vistas (excepto "Acoplado") son seleccionables.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top