2010-11-17 10 views
9

Tengo un problema con Visual Studio 2010. Ocurre cuando me desplazo hacia abajo/arriba, por ejemplo, en la ventana de propiedades. Su contenido se vuelve borroso durante milisegundos.Visual Studio 2010: el texto se vuelve borroso cuando se desplaza

También ocurre en mis propias aplicaciones WPF cuando uso un "ScrollViewer".

¿Alguien sabe cómo solucionarlo?

+0

tal vez vamos a todos reciben un monitor de 300 DPI en nuestro escritorio algún día. Su programa WPF estará listo para eso. –

Respuesta

6

En sus propias aplicaciones WPF es posible restringir desplazamientos de desplazamiento a los píxeles del dispositivo mediante el uso de una implementación personalizada IScrollInfo. Esto es bastante fácil de hacer. Tenga en cuenta que tendrá que get the actual screen DPI para hacer el cálculo.

En Visual Studio no hay una forma "razonable" de solucionarlo. Obviamente, usted podría piratear los archivos ejecutables de VS.NET para incluir su propia implementación de IScrollInfo, ¡pero yo no lo recomendaría!

+0

En mi caso (necesito 'controles' de desplazamiento en lugar de desplazamiento de texto), usando la propiedad ScrollViewer CanContentScroll = "True" habilita las capacidades de IScrollInfo (pageUp, pageDown, lineUp, lineDown) y blurness desaparecer. Estudiaré tu sugerencia (¡se ve muy bien!) Cuando necesite desplazar texto. Gracias por la pista! –

3

Casi de la única manera de evitar el problema es evitar completamente WPF. Tan bueno como lo es de alguna manera, todavía no recibe texto completamente correcto. Y sí, WPF es la fuente del problema en Visual Studio: a partir de VS 2010 cambiaron partes para usar WPF.

"todavía", en este caso se refiere al hecho de que era aún peor. A partir de .NET 4.0, han solucionado algunos de los problemas más atroces, pero (como has visto) todavía no es realmente correcto.

+0

Gracias por su respuesta. Espero que Microsoft lo resuelva algún día ... Me gusta WPF pero este problema es demasiado molesto. –

+3

En realidad, siempre que evite las funciones de WPF que permiten desplazamientos de desplazamiento de píxeles parciales, WPF 4 hace un gran trabajo con el desplazamiento de texto. El ScrollViewer predeterminado, lamentablemente, permite compensaciones arbitrarias. Entonces obtienes esos milisegundos de desenfoque mientras se vuelve a calcular la alineación del texto. Puede utilizar IScrollInfo para anular las transformaciones de píxeles parciales y eliminar la borrosidad. Ver mi respuesta para más información. –

0

Tuve el mismo problema. De hecho, hay una manera de arreglar esto mientras se desplaza. Sólo tiene que añadir los 3 atributos para el control de contenido:

SnapsToDevicePixels="True" UseLayoutRounding="True" TextOptions.TextFormattingMode="Display" 

Ten en cuenta que el texto no podría ser tan suave como debe ser mientras se desplaza (inmediatamente desaparece una vez que se detiene el desplazamiento sin embargo)

Cuestiones relacionadas