Welcome to MSDN Blogs Sign in | Join | Help

Использование WPF в системных утилитах Lenovo

После обновления системного Power Manager своего ноутбука Lenovo T61p обнаружил, что его UI стал подозрительно интерактивным :-)

image

обратите внимание на векторную форму окна и использование полупрозрачности.

Проверил через process explorer

image

Он действительно использует WPF – MilCore.dll

Интересная тенденция.

В дальнейшем буду публиковать примеры интересных WPF приложений под тагом showcase.

Published Thursday, August 07, 2008 11:33 AM by Roman Zdebskiy
Filed under: ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: Использование WPF в системных утилитах Lenovo

Monday, August 11, 2008 4:56 AM by int19h

Все бы хорошо, но вот с этим кривоватым сглаживанием надо что-то делать. Да, на T61p с его 15" матрицей 1920x1200 разницы с обычным виндовым ClearType практически незаметно; а вот на моем 20" десктопе с 1400x1050 "смазывание" здорово портит внешний вид WPF-приложений.

# re: Использование WPF в системных утилитах Lenovo

Wednesday, August 13, 2008 2:41 AM by Roman Zdebskiy

Надо просто включать SnapsToDevicePixels - про так называемое "размазывание" есть хорошая статья на msdn - http://msdn.microsoft.com/en-us/library/aa970908.aspx  

# re: Использование WPF в системных утилитах Lenovo

Thursday, October 30, 2008 8:20 AM by int19h

К сожалению, это не помогает. Сглаживание _текста_ все равно заметно хуже, чем стандартный ClearType.

Кстати, очень хорошо видно на примере VS2010 CTP...

# re: Использование WPF в системных утилитах Lenovo

Thursday, October 30, 2008 8:33 AM by Roman Zdebskiy

Посмотрите здесь по оптимизации отображения текста - http://windowsclient.net/wpf/white-papers/wpftextclarity.aspx

Наиболее правильно использовать специальные шрифты, оптимизированные под низкие разрешения. В крайнем случае можно скорректировать системные настройки ClearType через реестр - оба подхода описаны в статье по ссылке выше.

# re: Использование WPF в системных утилитах Lenovo

Monday, November 10, 2008 6:11 AM by int19h

Еще раз: это не помогает. Все эти настройки все равно в итоге дают качество картинки худшее, чем XP ClearType. Что, кстати, вполне объяснимо в силу описанных различий алгоритмов сглаживания. WPF дает более размытый текст за счет отсутствия snapping вертикальных и горизонтальных линий в glyphs к пикселям (из статьи по ссылке: "We do not snap to pixel boundaries in the X direction to preserve the characteristics of the text, and this causes some blur in text quality"). SnapsToDevicePixels это не регулирует - он относится только к шейпам, но не к тексту. И никаких других настроект этого дела нет. Причем, по утверждению команды WPF - это by design.

Никакие "оптимизированные под низкие разрешения" шрифты тут не помогут - это принципиальная разница. И, к сожалению, для чтения текста с экрана - эта разница не в лучшую сторону для WPF. Кстати, несмотря на повторяющиеся заверения со стороны MS в том, что разница "незначительна", практика показывает ровно обратное - пользователи очень быстро начинают жаловаться на "мыльный" текст в любом WPF-приложении с экранными шрифтами.

Ну и кроме того - десктопное приложение в любом случае должно использовать стандартные системные шрифты (т.е. Tahoma & Segoe UI). Если WPF требует некие волшебные "оптимизированные шрифты" для обеспечения приемлимого качества экранного текста, я склонен считать это дефектом само по себе.

# re: Использование WPF в системных утилитах Lenovo

Monday, January 12, 2009 3:52 AM by Roman Zdebskiy

Спасибо за дополнительную информацию об отзывах пользователей, на самом деле мы этим уже плотно занимаемся - в 4.0-ой версии WPF улучшение четкости шрифтов - один  из главных приоритетов. Также работа в этом направлении форсируется переводом всей Visual Studio 2010 IDE на WPF. Про WPF 4.0 я рассказываю здесь - http://platforma2009.ru/materials/showitem.aspx?MID=1c6f6f08-c2b7-495a-986f-3aaede88b200

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker