Диалоги Windows с большими шрифтами - PullRequest
5 голосов
/ 18 августа 2011

Я консультируюсь с большим проектом WinNet .Net, который должен работать в режиме «Touch», чтобы им можно было управлять с помощью интерфейса с сенсорным экраном.Архитектура приложения уже содержит логику масштабирования для увеличения шрифтов / отображения на стандартных формах и элементах управления .Net, а пользовательские элементы управления также обрабатывают масштабирование.

Проблема заключается в том, что приложение использует OpenFileDialog и SaveFileDialog, которые не масштабируются.используя ту же логику (которая по существу регулирует размер свойства Font в элементе управления и формах рекурсивно).Я считаю, что эти диалоги по сути являются родными диалогами Windows, а класс OpenFileDialog на самом деле является просто классами-обертками, которые предоставляют стандартный интерфейс .Net для взаимодействия с ними.

Одним из решений может быть реализация пользовательских диалогов для этих вещей, ноэто, вероятно, было бы несколько обширной работой.Что мы действительно хотели бы сделать, так это как-то масштабировать размер шрифта этого конкретного диалога (возможно, с помощью некоторой магии P / Invoke для обработки окон)?

Я знаю, что одним из решений для сенсорного включения было бы регулирование размера шрифта Windows в целом, но эта идея на самом деле не завоевала популярность в этой компании, они предпочли бы масштабировать само приложение и оставить все остальное.ОС нетронутой.

Итак, есть ли у вас опыт или идеи относительно того, как вы можете масштабировать эти диалоги до более крупного шрифта?Или мы должны просто прикусить пулю и создать для этого собственные диалоги?

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Я знаю, что одним из решений для сенсорного включения было бы регулирование размера шрифта Windows в целом, но эта идея на самом деле не завоевывает популярность в этой компании, они предпочли бы масштабировать само приложение и оставить все остальное.ОС нетронутой.

Диалоги, на которые вы ссылаетесь, являются частью «остальной части ОС», которые они предпочли бы оставить нетронутыми. Вы либо используете общие диалоговые окна, будучи вынужденными увеличить масштабирование шрифта на панели управления, т. Е. В масштабе всей системы, либо заново внедрить эти диалоговые окна самостоятельно.

Альтернативой может быть созданиеотделите рабочий стол Windows с помощью соответствующего API, увеличьте масштабирование шрифта и запустите приложение там (т. е. предоставьте приложению возможность создавать, использовать и уничтожать этот рабочий стол).Затем приложение и все общие диалоги будут расширены.Однако приложение никогда не будет отображаться с другими приложениями на одном экране, и вам придется позаботиться о переключении рабочих столов в приложении (я думаю).И вы не увидите ничего, кроме графического интерфейса приложения, когда приложение активно.Нет кнопки запуска, нет панели задач, нет Nuttin´.См. Например http://www.codeproject.com/KB/cs/csdesktopswitching.aspx для получения более подробной информации.

0 голосов
/ 14 февраля 2012

Лучшим решением для вас будет создание формы, реализующей заголовок с меткой и с близким знаком, а в остальной части формы - то, что вам нужно.В этом случае шрифт метки может быть увеличен до любого желаемого размера.когда вам нужно открыть этот диалог, просто вызовите .sohwDialog () в форме

...