WinForms aplication UI受Windows UI设置的影响

时间:2010-08-05 09:10:26

标签: winforms user-interface

如何确保我的应用程序用户界面不受Windows UI设置的影响?我应该对我的申请做些什么改变以防止它?

1 个答案:

答案 0 :(得分:1)

我没有给你一个确切的答案。只有建议,也因为我使用Delphi并没有使用winforms的经验。

找到受Windows UI设置影响的所有区域将是一项挑战。这将是一个挑战,因为大多数开发环境都会让您轻松地按照应用中的UI设置而不是推翻/忽略(更改)它们。

至少你必须:

  • 转动他们的支持。
  • 取代标准的Windows颜色,字体,格式(日期,时间,数字,金钱等)和指标。并确保您的应用不响应任何Windows有关这些设置更改的消息(或者您将回到原点)。所涉及的消息似乎是:WM_WININICHANGEWM_SETTINGCHANGEWM_FONTCHANGEWM_THEMECHANGED,但可能还有更多。在Delphi中,我会通过将Application.UpdateFormatSettingsApplication.UpdateMetricSettings设置为False来获得一些里程数,这将确保应用程序在收到WM_WININICHANGE消息时不会更改任何设置。我想WinForms应用程序可能有一个类似的策略,但你仍然需要处理(或者忽略)其他消息。
  • 或者,请确保您不使用开发环境中的任何功能,以便轻松地遵循这些设置。例如,确保不使用任何标准颜色常量(如clWindowText),它们不是真正的常量,而是使用特殊值来告诉IDE /编译器/库从Windows设置中获取值。而且你必须对通常通过Windows设置控制的所有内容采取相同的方法。

最后,我认为这不值得付出努力,正如我在你对你的问题的评论中已提到的那样,用户不会感谢你这样做。虽然我知道这是客户的要求,但您可能想要回到那个客户并说服他们这不是一个好主意。