В настоящее время я разрабатываю небольшой предварительный просмотр принтера, но у меня есть некоторые проблемы с преобразованием точек на мм/т/д в пиксели на экране.Преобразование dpi/точек в пиксель дает неправильный результат
Например я есть Label
который имеет координаций: сверху = 5 точек осталось = 20 точек
Принтер имеет разрешение 8 точек на мм/203 точек на дюйм.
В моем простом приложении wpf у меня есть холст, где я хочу разместить ярлык на том месте, где он будет напечатан. Поэтому мне нужно преобразовать значения 20
и 5
относительно моего разрешения на экране. Но результат в пикселях неверен. Это мои расчеты:
// start values
double top = 5;
double left = 20;
// let's try to calculate the mm. We use 8, because we have 8mm per dot
double mmtop = top/8.0;
double mmleft = left/8.0;
// let's turn mm to cm
double cmtop = mmtop * 10.0;
double cmleft = mmleft * 10.0;
// Lets calulate the pixels on the base of a 72dpi monitor
double dpitop = cmtop/25.4 * 72.0; // = 318.89
double dpileft = cmleft/25.4 * 72.0; // = 17.71
Так я попытался вычислить положение на основе пикселя. Что я делаю не так?
Возможно, я сделал очень легкую ошибку, спасибо!
Там не 25.4 см дюйма. Есть 2,54 см в дюйме, так что, может быть, ваши переменные 'dpitop' и' dpileft' имеют неправильные значения? – Sheridan