Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Янин В.Л. "Новгородские акты XII-XV Хронологический комментарий" (История)

Майринк Г. "Белый доминиканец " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 2" (Художественная литература)

Петров Г.И. "Отлучение Льва Толстого " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 1 " (Художественная литература)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 7 8 9 10 11 12 < 13 > 14 15 16 17 18 19 .. 473 >> Следующая

Book_Pro_WPF-2.indb 30 19.05.2008 18:09:35
Введение в WPR 31
Предположим, что вы создаете в WPF маленькую кнопку размером 96x96 единиц. Если вы используете стандартную установку Windows ОР1 (96 йрі), то каждая независимая от устройства единица измерения соответствует одному реальному физическому пикселю. Это потому, что WPF использует следующее вычисление:
[Размер в физических единицах] = [Размер в независимых от устройства единицах]
х [DPI системы]
= 1/96 дюйма х 96 dpi = 1 пиксель
По сути, WPF предполагает, что ему нужно 96 пикселей, чтобы отобразить один дюйм, потому что Windows сообщает ему об этом через системную настройку ОР1. Однако в действительности это зависит от вашего дисплейного устройства.
Например, рассмотрим 20-дюймовый жидкокристаллический монитор с максимальным разрешением в 1600x1200 пикселей. Используя теорему Пифагора, вы можете вычислить плотность пикселей для этого монитора, как показано ниже:
?\/16002 +12 002 пикселей
[DPI экрана] = ------------------------ = 100 dpi
19дюймов
В этом случае плотность пикселей составляет 100 dpi, что немного больше того, что предполагает Windows. В результате на этом мониторе кнопка размером 96x96 пикселей будет немного меньше одного дюйма.
С другой стороны, рассмотрим 15-дюймовый жидкокристаллический монитор с разрешением 1024x768 пикселей. Здесь плотность пикселей составит около 85 dpi, поэтому кнопка размером 96x96 пикселей окажется размером немного больше 1 дюйма.
В обоих этих случаях, если вы уменьшите размер экрана (скажем, переключившись на разрешение 800x600), то кнопка (и любой другой экранный элемент) станет пропорционально больше. Это потому, что системная установка ОРІ останется 96 dpi. Другими словами, Windows продолжает предполагать, что 96 пикселей составляют дюйм, даже несмотря на то, что при меньшем разрешении потребуется существенно меньше пикселей.
Совет. Как вам, возможно, известно, жидкокристаллические мониторы создаются с единственным разрешением, которое называется естественным разрешением. Если вы уменьшаете это разрешение, то монитору приходится использовать интерполяцию, чтобы заполнить лишние пиксели, что может вызвать нерезкость. Чтобы получить наилучшее качество изображения, всегда лучше использовать естественное разрешение. Если вы хотите иметь более крупные окна, кнопки и текст, рассмотрите вместо этого возможность модификации системной установки 0Р! (как описано далее).
Системная установка ЭР!
До сих пор пример кнопки WPF работал точно так же, как любой другой интерфейсный элемент в приложении Windows любого иного типа. Отличие проявляется при изменении вашей системной установки DPI. В предыдущем поколении Windows это средство иногда называли крупными шрифтами. Это потому, что системная установка DPI влияет на размер системных шрифтов, часто оставляя прочие детали неизменными.
На заметку! Многие приложения Windows не полностью поддерживают увеличенные установки 0РІ. В худшем случае увеличение системной установки 0РІ может привести к появлению окон, в которых некоторое содержимое увеличено, а другое — нет, что может привести к утере части содержимого или даже к нефункциональным окнам.
Book_Pro_WPF-2.mdb 31 19.05.2008 18:09:36
32 Глава 1
Здесь поведение WPF отличается. WPF воспринимает системную установку DPI естественно и без особых затрат. Например, если вы измените системную установку DPI на 120 dpi (распространенный выбор пользователей экранов большого разрешения), WPF предполагает, что для заполнения дюйма пространства нужно 120 пикселей. WPF использует следующее вычисление для определения того, как он должен транслировать логические единицы в физические пиксели устройства:
[Размер в физических единицах] = [Размер в независимых от устройства единицах]
х [DPI системы]
= 1/96 дюйма х 120 dpi = 1,25 пикселя
Другими словами, когда вы устанавливаете системную настройку DPI в 120 dpi, то механизм визуализации WPF предполагает, что одна независимая от устройства единица измерения соответствует 1,25 пикселей. Если вы отображаете кнопку 96х96, то физический ее размер составит 120x120 пикселей (потому что 96 х 1,25 = 120). Именно такого результата вы и ожидаете — кнопка размером в 1 дюйм имеет такой же размер на мониторе с повышенной плотностью пикселей.
Такое автоматическое масштабирование было бы не слишком полезным, если бы касалось только кнопок. Но WPF использует независимые от устройства единицы для всего, что отображает, включая фигуры, элементы управления, текст и любые другие ингредиенты, которые вы помещаете в окно. В результате вы можете изменять системную установку DPI, как вам заблагорассудится, и WPF незаметно подгонит размеры окон вашего приложения.
На заметку! В зависимости от системной установки DPI вычисляемый размер пикселя может быть выражен дробным значением. Вы можете предположить, что WPF просто округляет все размеры до ближайшего пикселя. (На самом деле WPF поддерживает средство усечения пикселей, которое именно это и делает, и в главе 13 вы узнаете, как включить его для определенных частей содержимого.) Однако по умолчанию WPF поступает несколько иначе. Если грань элементов приходится на точку между пикселями, WPF использует сглаживание, чтобы размыть эту грань. Это может показаться странным решением, но на самом деле оно вполне оправдано. Ваши элементы управления не обязательно должны иметь прямые четкие грани, если вы используете специально рисованную графику для их отображения; поэтому некоторая степень сглаживания все равно необходима.
Предыдущая << 1 .. 7 8 9 10 11 12 < 13 > 14 15 16 17 18 19 .. 473 >> Следующая