У меня нет точного ответа для вас. Только предложения, в том числе потому, что я использую 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.
В конце концов, я не думаю, что это стоит затраченных усилий, и, как я уже упоминал в своем комментарии к вашему вопросу, пользователи не будут вам благодарны за это. Хотя я понимаю, что это запрос вашего клиента, вы можете подумать о том, чтобы вернуться к этому клиенту и убедить его, что это не очень хорошая идея.