GDI +: Jak narysować linię o długości jednego cala na dowolnym urządzeniu, na którym jest narysowana?

Muszę narysować linię o długości jednego cala na dowolnym urządzeniu podanymGraphics odniesienie do tego. Potrzebuję go, aby był calowy, niezależnie od tego, coTransform jest ustawione na. Załóżmy, że współczynnik skalowania transformacji jest podany przezscale w kierunkach poziomym i pionowym.

Niektóre kody C ++ / CLI:

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

Teraz to wcale nie było trudne! Teraz wszystko, co musimy zrobić, to obliczyćoneInchEquivalent.

g->DpiX daje mi odległość, która wygląda jak jeden cal na ekranie, ale nie na drukarce. Wydaje się, że na drukarkach narysowano linię 100 jednostekg->PageUnit ustaw na GraphicsUnit :: Display da mi linię o długości jednego cala. Ale naprawdę potrzebuję tego do pracy bez względu naPageUnit oprawa. W rzeczywistości zmienia sięPageUnit zmieni szerokość pióra !!

Edytować: Wstępnie zaakceptowałem jedyną odpowiedź tutaj, ponieważ jest ona bliska temu, czego szukam.

questionAnswers(1)

yourAnswerToTheQuestion