GDI +: Как нарисовать линию длиной в один дюйм на любом устройстве?

Мне нужно нарисовать линию длиной один дюйм на любом устройстве, учитываяGraphics ссылка на это. Мне нужно, чтобы он был длиной в дюйм, независимо от того, чтоTransform установлен в. Позволять'Предположим, что масштабный коэффициент преобразования определяется какscale в горизонтальном и вертикальном направлениях.

Некоторый код C ++ / CLI:

g->DrawLine(Pens::Black, 50.0f, 50.0f, 50.0f + oneInchEquivalent / scale, 50.0f);

Теперь это было совсем не сложно! Теперь все, что нам нужно сделать, это рассчитать.oneInchEquivalent

g->DpiX дает мне расстояние, которое выглядит как один дюйм на экране, но не на принтере. Похоже, что на принтерах рисуется линия из 100 единиц сg->PageUnit если установить значение GraphicsUnit :: Display, получится строка длиной один дюйм. Но мне действительно нужно, чтобы это работало независимо отPageUnit установка. На самом деле меняетсяPageUnit изменит ширину пера !!

Редактировать: Я предварительно принял здесь единственный ответ, так какдовольно близко к тому, что я ищу.

Ответы на вопрос(1)

Ваш ответ на вопрос