netlib.narod.ru | < Назад | Оглавление | Далее > |
Некоторые действия в преобразовании страницы недопустимы. Во-первых, нельзя заносить в свойство PageScale отрицательные значения, т.е. нельзя увеличивать координаты по оси X влево от начала координат (что иногда пытаются делать) или распространять координаты Y за пределы верхней границы экрана (люди, склонные мыслить математически, считают это полезным).
Во-вторых, нельзя вводить разные единицы для измерений по горизонтали и вертикали. Свойства PageScale и PageUnit применимы в равной мере к обеим осям. Функция типа:
grfx.DrawEllipse(pen, 0, 0, 100, 100);
всегда будет рисовать окружность независимо от преобразования страницы, кроме единственного случая, когда свойство PageUnit задано как GraphicsUnit.Pixel, а разрешение устройства вывода по горизонтали и вертикали отличается. Эта проблема редко возникает с дисплеем, но довольно обычна для принтеров.
Наконец, нельзя менять положение начала координат. Точка с координатами (0, 0) всегда находится в левом верхнем углу клиентской области или области печати страницы принтера.
К счастью, GDI+ поддерживаег еще одно преобразование, позволяющее решать эти и множество других задач.
netlib.narod.ru | < Назад | Оглавление | Далее > |