Хабрахабр:
Возможно, для многих этот топик не окажется откровением, но я лично узнал об этом совсем недавно. Однако, многим начинающим разработчикам он может быть полезным. Как известно, с самого рождения WPF болел проблемами с отображением текста. Особенно это было заметно на не крупных шрифтах (подписи к кнопкам, Labels, ListBoxes итд.) Однако, с выходом версии 4.0 Microsoft серьезно переработали вывод текста и добавили несколько полезных attached properties. Я не буду останавливаться подробно на рассмотрении всех свойств, а приведу лишь короткий рецепт, как сделать, чтобы ваши контролы в WPF форме отображались с четким текстом. Подчеркну, что он применим к ситуации, когда вы используете стандартные контролы без особых трансформаций, анимаций и огромного текста. Итак, достаточно добавить следующее свойства в элемент вашего окна: <Window TextOptions.TextFormattingMode="Display" ...... /> Результат можно приблизительно увидеть здесь (по клику полное изображение): Приблизительно, потому что скриншот полностью не отображает разницы, на работающем приложении все заметно гораздо лучше. Для тех, кто хочет подробнее почитать про рендеринг текста в WPF 4.0 есть замечательный блог посвященный исключительно этой теме: WPF Text Blog. Очень советую почитать вот этот пост: blogs.msdn.com/b/text/archive/2009/08/24/wpf-4-0-text-stack-improvements.aspx UPD: Коллега посоветовал интересный пост тему рендеринга текста: www.codinghorror.com/blog/2007/06/font-rendering-respecting-the-pixel-grid.html
Да, похоже, принципы демократии некоторыми организациями соблюдаются только на словах. Так, сегодня был повторно удален домен Wikileaks администратором доменной зоны .org, компанией EveryDNS. Напомню, что вначале эта организация прекратила делегирование доменного имени Wikileaks.org. Это было сделано якобы потому, что на сайт ресурса велась DDoS-атака в 10 Гб/сек, и EveryDNS, по словам руководства, приняла решение избавиться от этого доменного имени, поскольку ?непрекращающаяся DDoS-атака поставила под угрозу всю инфраструктуру доменной зоны .org?. Решение странное, но всякое бывает. Однако, дальше начинается сплошной цирк. Читать дальше →
В прошлый раз мы говорили о том, как можно упростить работу с асинхронными операциями с помощью класса AsyncEnumerator Джеффри Рихтера, а также с помощью библиотеки Reactive Extensions. Однако, как поведал нам недавно Хейлсберг с компанией, счастье таки наступит с выходом новой версии языка C# и нам не понадобится использовать сторонние и не очень велосипеды, при работе с асинхронными операциями. Идея, которая лежит в основе асинхронных операций в C# 5, очень похожа на ту, которую использовал Джеффри Рихтер в своем классе AsyncEnumerator, только на этот раз помимо нас с вами и старины Рихтера о ней еще узнал и компилятор (что здорово сказывается на вкусовых качествах сего синтаксического сахарка). Для начала, давайте вернемся к синхронной версии нашего гениального примера, который мы использовали ранее: Читать дальше →

Отписаться от этой рассылки