2010-08-05 53 views
1

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

+0

为什么你想这样做?你认为如果你强迫他们使用与他们舒服的设置不同的设置,你的用户会很开心?毕竟这是他们首先选择他们的原因之一?还是你在谈论如何确保你的应用程序在运行时不知道这些设置的变化?不是很好,但更容易理解。 – 2010-08-05 10:23:52

+0

我了解您的意见,但这是我的客户请求 – Cornel 2010-08-05 12:16:13

+0

啊,他(s)谁付账单...有时候,只是没有说服他们... – 2010-08-05 13:54:30

回答

1

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

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

至少,你必须:

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

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

相关问题