Моему приложению WinForms (C # .NET 4.6) требуется AutoScaleMode = Dpi для других функций. Это отлично работает для 99% моих клиентов. Обычно они используют масштабирование дисплея Windows на 100%, 125% или даже% 150.
Однако у меня есть клиентская установка с экраном 3840x2160 с масштабированием 250%. В этой системе мои кнопки на панели инструментов выглядят очень странно:
Кнопки панели инструментов, кажется, увеличиваются в высоту с масштабированием системы, но они не растут в ширину. Это создает искаженный вид с крошечными изображениями кнопок. Как я могу заставить кнопки панели инструментов масштабироваться в обоих направлениях, а также соответственно масштабировать изображения кнопок?
AutoScaleMode = Dpi
, но не упомянули, действительно ли ваше приложение является DpiAware и, в этом случае, какой режим DpiAwareness вы выбрали. Обратите внимание, что ToolStrip масштабируется с использованием размера шрифта. Вы можете адаптировать свою кнопку (поскольку там нет текста), установивAutoSize = false
, а затем установив размер, который совпадает с высотой ToolStrip. Можно добавить дополнительные настройки, чтобы масштабировать изображение разными способами. - ToolStrip - один из тех элементов управления, которые могут отказаться от улучшений High-Dpi с помощью специальной настройки вapp.config
, если это необходимо. - person Jimi   schedule 17.03.2021