В настоящее время у меня есть приложение winform, которое относительно сильно зависит от чтения точек щелчка мыши. Это видео-приложение, которое позволяет пользователю нажимать на входящую видео-ленту с веб-камеры и рисовать линии на ней и делать другие вещи. Важной частью этого вопроса являются линии рисования. Простым примером является то, что если они нажимают где-то на видеопотоке, он мгновенно рисует горизонтальную линию по всему изображению в точке мыши.Форсировать программу Winform для работы при 96dpi?
Это работает безупречно на 96 точек на дюйм, но когда окна масштабируются до 125% масштабирования (Панель управления \ Все элементы панели управления \ Дисплей -> Средняя - 125%), которая масштабирует ее до 120 точек на дюйм, все идет в банк. Неожиданно приложение читает мышь как щелкнув гораздо дальше по картинке, чем на самом деле.
Все, что я делаю, это вытащить точное местоположение мыши на mouseclick. Это буквально так же просто, как
using (Graphics g = Graphics.FromImage(tmpImage))
{
g.DrawLine(new Pen(lineColor, lineWidth),
new Point(0, e.Location.X), new Point(tmpImage.Width,
e.Location.Y));
}
В 96dpi он рисует именно на мышь. При 120dpi, он тянет совсем немного к югу от мыши. Это огромная проблема для меня.
Можно ли каким-либо образом заставить приложение постоянно работать на частоте 96 точек на дюйм или какое-либо другое решение, чтобы заставить мое приложение работать в соответствии с обстоятельствами 120 + dpi?
Спасибо!
Я настоятельно рекомендую WPF, если вам нужна независимость от независимого разрешения и независимость от DPI. Метод winforms 'X, Y' действительно ограничен, когда дело доходит до такого рода вещей, и вам придется прибегать ко всем видам ужасных хаков, чтобы нормально работать. –
Увеличивает ли ваш масштаб изображение? Если да, возможно, вам придется «вычислить» коэффициент масштабирования. – Alex
К сожалению, у меня нет большого выбора в аспекте Winform. Это приложение уже закончено, и это поздняя ошибка поиска (то, что я действительно не учитывал!). @ Alex - насколько я могу судить, изображение, по-видимому, не увеличивается с увеличением на дюйм. –