Пользовательский интерфейс приложения WinForms зависит от настроек пользовательского интерфейса Windows - PullRequest
1 голос
/ 05 августа 2010

Как я могу убедиться, что мой пользовательский интерфейс приложения не зависит от настроек интерфейса пользователя Windows?Какие изменения я должен внести в свое приложение, чтобы предотвратить его?

1 Ответ

1 голос
/ 05 августа 2010

У меня нет точного ответа для вас. Только предложения, в том числе потому, что я использую Delphi и не имею опыта использования winforms.

Будет сложно найти все области, на которые влияют настройки пользовательского интерфейса Windows. И это будет непростой задачей, потому что большинство сред разработки делают все возможное, чтобы вам было проще следить за настройками пользовательского интерфейса в своих приложениях вместо того, чтобы игнорировать / игнорировать (изменять их).

По крайней мере, вам придется:

  • Поворот поддержки тем.
  • Отменяет стандартные цвета Windows, шрифты, форматы (дата, время, цифры, деньги и т. Д.) И метрики. И убедитесь, что ваше приложение не отвечает ни на какие сообщения Windows об изменениях этих настроек (или вы вернетесь к исходной точке). Сообщения, о которых идет речь, выглядят так: WM_WININICHANGE, WM_SETTINGCHANGE, WM_FONTCHANGE и WM_THEMECHANGED, но их может быть больше. В Delphi я мог бы получить некоторое преимущество, установив для Application.UpdateFormatSettings и Application.UpdateMetricSettings значение False, что гарантировало бы, что приложение не изменит ни одну из этих настроек при получении сообщения WM_WININICHANGE. Я предполагаю, что может быть похожая уловка для приложений WinForms, но вам все равно придется иметь дело (или скорее игнорировать) другие сообщения.
  • Или убедитесь, что вы не используете в своей среде разработки какие-либо функции, облегчающие выполнение этих настроек. Например, убедитесь, что вы не используете никаких стандартных цветовых констант (например, clWindowText), которые на самом деле не являются константами, а являются специальными значениями, которые сообщают IDE / Compiler / library, чтобы они выбирали значения из настроек Windows. И вам придется использовать тот же подход со всем, что обычно контролируется через настройки Windows.

В конце концов, я не думаю, что это стоит затраченных усилий, и, как я уже упоминал в своем комментарии к вашему вопросу, пользователи не будут вам благодарны за это. Хотя я понимаю, что это запрос вашего клиента, вы можете подумать о том, чтобы вернуться к этому клиенту и убедить его, что это не очень хорошая идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...