【问题标题】:How to change NSIS installer background color based on system color如何根据系统颜色更改 NSIS 安装程序背景颜色
【发布时间】:2018-09-06 20:33:32
【问题描述】:

似乎 NSIS 已将背景颜色硬编码为白色。

只要打开高对比度,背景就会保持白色,而文本会恢复为白色(以符合高对比度)。

有没有办法确定当前的系统颜色并相应地改变背景?

【问题讨论】:

  • Windows 版本?
  • 您说的是现代 UI 中的白色部分吗?还是 InstFiles 页面上的日志/列表?
  • 针对 Windows 10 和当前版本的 NSIS 进行测试。谈论安装程序的第一页和最后一页。标题也采用这些颜色。 @安德斯
  • 我看到了问题,我会尝试找出最好的解决方案。在我为下一个版本修复之前,它可能需要一些技巧。

标签: installation accessibility nsis


【解决方案1】:

如果您不使用依赖于白色背景的向导/标题图像,您可以简单地这样做

!define MUI_BGCOLOR "SYSCLR:Window"
!include MUI2.nsh
...

在 NSIS v3 的最新版本中。

如果您想强制黑底白字,则必须手动更改 Modern UI .nsh 文件。查找类似于SetCtlColors $SomeNameHere "" "${MUI_BGCOLOR}" 的行并将它们更改为SetCtlColors $SomeNameHere "000000" "FFFFFF"

【讨论】:

  • 感谢您的帮助!这实际上解决了这个问题。它确实使默认选项看起来有点过时,但对于可访问的选项来说这是一个合理的价格。
  • @rezpawn 我会在下个版本中添加文字颜色设置。
  • 谢谢!有没有办法确定当前设置是否具有高对比度,以便我们可以相应地更改设置?它真的只需要匹配正常的 Windows 设置。
  • 复制sourceforge.net/p/nsis/code/7013/tree//NSIS/trunk/Include/…底部的代码可以使用${If} ${IsHighContrastModeActive}
【解决方案2】:

为了扩展Ander's answer...上面的代码还将在高对比度模式下修复欢迎文本。我什至认为出于可访问性原因应该是所有安装程序的默认设置。

!define MUI_BGCOLOR "SYSCLR:Window"
!define MUI_TEXTCOLOR "SYSCLR:WindowText"
!include MUI2.nsh
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 2019-06-20
    • 2012-09-17
    • 2020-10-11
    • 2021-03-29
    相关资源
    最近更新 更多