Как правильно настроить автоматическое масштабирование ToolStrip в .NET

Я изо всех сил пытаюсь решить следующую проблему, и мне интересно, может ли кто-нибудь помочь.

Я создаю приложение WinForm для .NET С#, ориентированное на .NET 4.6, в котором должна быть улучшена поддержка высокого разрешения. Я разрабатываю приложение на своем ноутбуке с экраном 4K и масштабированием на 200% в Windows 10.

Мое приложение вызывает SetHighDPIAware и имеет в app.config

<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" /> 

установлен. Проблема в том, что когда я добавляю панель инструментов, она правильно отображается на моем ПК, но удваивается в размере (только изображения) на моем клиентском ПК. Результат очень некрасивый. Все свойства элементов ToolStrip и ToolStrip установлены по умолчанию: autosize = true, imagescaling size = 32; 32, режим масштабирования изображений = sizetofit.

Большое спасибо, кто может помочь!

ВВЕРХ: мой компьютер ВНИЗ: клиентский компьютер


person lorenzop    schedule 16.03.2017    source источник
comment
Вы мало что можете сделать (если только полностью не нарисуете элемент управления самостоятельно). Microsoft могла решить эту проблему в .NET Framework 4.6.2 (или в будущих выпусках, таких как 4.6.3), поэтому вы можете проверить это в первую очередь.   -  person Lex Li    schedule 16.03.2017


Ответы (1)


Обновите до Windows 10 v1703 (Creators Update) и нацельте свое приложение на .Net framework 4.7 в Visual Studio 2017, чтобы иметь улучшенная поддержка масштабирования DPI в WinForms.

Попробуйте, если это даст вам улучшение.

person magicandre1981    schedule 07.04.2017
comment
Спасибо, я постараюсь и дам вам знать. - person lorenzop; 11.04.2017
comment
хорошо, сделайте это и отчитайтесь. Вот также дополнительная информация о HighDPI в Winforms< /а>. - person magicandre1981; 11.04.2017
comment
Мне жаль. Никаких улучшений. Пытался даже создать пустой проект в сравнении с 2017, ориентируясь на fw 4.7, выполняя все настройки app.manifest и app.config, запуская обновление создателей win 10, но никаких улучшений, даже с самой простой панелью инструментов с 1 кнопкой в ​​ней. - person lorenzop; 19.04.2017
comment
это проводное. В документации упоминается ToolStrip. установите для Toolstrip.DisableHighDpiImprovements значение false в app.config. также добавьте поддерживаемую ОС Win10 в манифест - person magicandre1981; 19.04.2017
comment
По умолчанию Toolstrip.DisableHighDpiImprovements имеет значение false. Не волнуйтесь, я сделал все, что указано в документации. Возможно, Microsoft не подумала о приложениях, разработанных с высоким разрешением и работающих с низким разрешением. - person lorenzop; 19.04.2017
comment
можете ли вы поделиться своей небольшой демонстрацией (github), и я попробую ее самостоятельно - person magicandre1981; 20.04.2017
comment
на самом деле, даже образец HiDPI из dotnet-samples не масштабирует добавленную туда панель инструментов :( - person wizzard0; 18.02.2018