Главная » WPF » Независимость от разрешающей способности

0

В WPF не существует  способа определить,  что такое реальный  пиксель.  Од ним из принципов проектирования WPF был постулат о независимости от разре шающей способности, то есть приложение должно было работать одинаково  при любом разрешении устройства  и во всех случаях выглядеть оптимально.  Незави симость  от разрешающей  способности  проявляется в разных  формах: от интен сивного использования векторной  графики  до механизма  размещения и т.д. Од ним из основных способов реализации такой независимости в WPF является применение не зависящей от разрешения системы координат,  не основанной  на физических пикселях.

В GDI  система координат  опирается  на пиксели. Когда мы говорим, что одна точка отстоит  от другой на 5 пикселей,  это означает,  что на устройстве  вывода между этими точками будет ровно пять пикселей.  Конечно, в GDI  есть и другие системы координат1,  но в конечном итоге все сводится к пикселям.

В WPF в качестве единицы  измерения длины используется логический пик сель, равный 1/96  дюйма. Сразу же возникает  вопроса: почему именно 1/96? Яс но, что 1 сантиметр или 1 дюйм выглядел  бы куда естественнее. Но разработчики уже долгое время пользуются  пикселями в смысле GDI, а разрешающая способ ность большинства устройств вывода равна 96 dpi (точек на дюйм), поэтому 1/96 дюйма не только отвечает интуитивным ожиданиям программистов, но и соотве тствует современным  физическим устройствам.  Я уверен, что по мере повыше ния разрешающей  способности  мониторов2 это решение будет казаться все более и более произвольным3.

Для согласования с логической  картиной  мира в WPF при рендеринге  пред полагается  бесконечная разрешающая способность.  В частности,  это означает, что текст прорисовывается одинаково  вне зависимости от размера или разреше ния устройства  вывода, поскольку  внутренние  вычисления производятся с бес конечной точностью. (Ну, конечно, не бесконечной, но достаточно высокой!)  Од нако при работе с устройствами, имеющими  относительно низкое  разрешение, например, компьютерными экранами,  возникают  сложности.

Есть два общепринятых способа создания  качественного изображения на эк ранах с небольшой разрешающей  способностью, имеющихся у большинства пользователей. Алгоритм сглаживания (anti aliasing) выполняет все вычисления, ориентируясь на высокое разрешение, а при выводе на экран определяет, сколь

Рис. 5.2. Прямоугольники крупным планом при включенном и отключенном режиме совмещения с пикселями. Обратите внимание, насколько четким получается сов мещенное изображение, несмотря на то, что контур прямоугольника проходит не точно по границам пикселей.

В общем случае нет необходимости изменять  умолчания для включения ре жима совмещения;  но при необходимости для явного управления им служит свойство SnapsToDevicePixels.

Источник: К. Андерсон  Основы  Windows Presentation Foundation. Пер. с англ. А. Слинкина — М.: ДМК Пресс, 2008 — 432 с.: ил.

По теме:

  • Комментарии