2010-11-17 9 views
9

Ich habe ein Problem mit Visual Studio 2010. Es passiert, wenn ich zum Beispiel im Eigenschaftenfenster nach unten/oben scrollen. Sein Inhalt wird für Millisekunden verschwommen.Visual Studio 2010: Text wird beim Scrollen unscharf

Es passiert auch in meinen eigenen WPF-Anwendungen, wenn ich einen "ScrollViewer" verwende.

Weiß jemand, wie man es löst?

+0

Vielleicht werden wir Alle bekommen eines Tages einen 300 DPI Monitor auf unserem Schreibtisch. Ihr WPF-Programm wird dafür bereit sein. –

Antwort

6

In Ihren eigenen WPF-Anwendungen ist es möglich, Scroll-Offsets auf Gerätepixel zu beschränken, indem Sie eine benutzerdefinierte IScrollInfo Implementierung verwenden. Das ist einfach genug zu tun. Beachten Sie, dass Sie get the actual screen DPI die Berechnung durchführen müssen.

In Visual Studio gibt es keine "vernünftige" Möglichkeit, es zu beheben. Offensichtlich können Sie die VS.NET-Executables hacken, um Ihre eigene IScrollInfo-Implementierung einzuschließen, aber ich würde es nicht empfehlen !!

+0

In meinem Fall (ich brauche "Scrolling" anstelle von Text Scrollen), mit der ScrollViewer-Eigenschaft CanContentScroll = "True" aktiviert die IScrollInfo-Funktionen (pageUp, pageDown, lineUp, lineDown) und Unschärfe verschwinden. Ich werde Ihren Vorschlag studieren (es sieht gut aus!), Wenn ich Text scrollen muss. Danke für den Hinweis! –

3

Die einzige Möglichkeit, das Problem zu vermeiden, besteht darin, WPF vollständig zu vermeiden. So schön wie es in gewisser Weise ist, es immer noch bekommt nicht vollständig Text korrekt. Und ja, WPF ist die Quelle des Problems in Visual Studio - ab VS 2010 haben sie Teile davon auf WPF umgestellt.

"still", in diesem Fall in Bezug auf die Tatsache, dass es früher noch schlimmer war. Seit .NET 4.0 haben sie einige der schlimmsten Probleme behoben, aber (wie Sie gesehen haben) ist es immer noch nicht richtig.

+0

Vielen Dank für Ihre Antwort. Ich hoffe, dass Microsoft es eines Tages löst ... Ich mag WPF, aber dieses Problem ist zu nervig. –

+3

Solange Sie WPF-Funktionen vermeiden, die Teil-Pixel-Scroll-Offsets zulassen, macht WPF 4 mit dem Scrollen von Text hervorragende Arbeit. Der voreingestellte ScrollViewer erlaubt leider beliebige Offsets. Sie erhalten diese verschwommenen Millisekunden, während die Textausrichtung neu berechnet wird. Sie können IScrollInfo verwenden, um die partiellen Pixeltransformationen zu überschreiben und die Unschärfe zu beseitigen. Siehe meine Antwort für weitere Informationen. –

0

Ich hatte das gleiche Problem. Es gibt tatsächlich eine Möglichkeit, dies beim Scrollen zu beheben. Fügen Sie einfach diese drei Attribute, um Ihre Inhalte Kontrolle:

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

beachten Sie nur, dass der Text nicht so glatt aussehen könnte, wie es sollte beim Scrollen (ab sofort geht weg, sobald Sie aber stoppen Scrollen)