2010-08-05 3 views
1

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

+0

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

+0

Я понимаю ваше мнение, но это мой запрос клиента – Cornel

+0

А, он (он), который оплачивает счета ... Иногда их просто не убеждают ... –

ответ

1

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

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

По крайней мере, вы будете иметь к:

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

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

Смежные вопросы