Date: 21.10.2021 11:37:31
Date: 21.10.2021 15:57:18
Date: 22.10.2021 3:35:46
Похоже обновление KB5006670: https://docs.microsoft.com/en-us/answers/questions/589319/gdiplus-pen-constructor-change-of-behaviour-in-win.html . А вы толщину линий в коде как-то задаете? Или используется толщина по умолчанию?
Странно, что Microsoft пошли на несовместимые изменения, да еще в таком древнем продукте, как GDI+. Но, так или иначе, изменение выглядит правильным. В документации явно написано, что толщина линии в текущих единицах, а не в пикселах, и нулевая толщина соответствует единице. То есть при выборе миллиметров и толщины по умолчанию линия и должна быть толстой.
Date: 22.10.2021 15:33:52
Понятно. И вам нужна толщина в 1 пиксель - как "сплошная тонкая" в ЕСКД. Думаю, многие разработчики инженерных приложений поступали так же, ибо размеры для чертежей нужны в миллиметрах, а про то, что толщина линий тоже в чем-то должна измеряться, просто не задумывались. Сейчас пойдет крик во всю ивановскую, так как это могло затронуть реально многих в этой сфере. Что примечательно, для Win 7 вышло аналогичное обновление, хотя она уже не поддерживается. Это уже совсем странно, что могло заставить Microsoft сделать это?
Самое правильное, вместо того, чтобы отменять использование миллиметров, думается мне, задать однопиксельную толщину как по документации: https://docs.microsoft.com/en-us/dotnet/desktop/winforms/advanced/types-of-coordinate-systems?view=netframeworkdesktop-4.8
Pen myPen = new Pen(Color.Black, 1 / myGraphics.DpiX);
Автор: VadimTagil