Electron 6 - контекстные меню теперь по умолчанию используют тему ОС (темную или светлую). Как переопределить это поведение? - PullRequest
0 голосов
/ 06 ноября 2019

После перехода с Electron 5 на 6 я заметил, что контекстные меню теперь автоматически используют тему ОС (я использую Windows 10).

Если вы установите цвет темы Windows 10 на «темный»,контекстные меню теперь будут темными. То же самое применимо, если вы используете «светлую» тему, контекстные меню будут светлыми.

Я просмотрел документы и заметки о выпуске Electron, но не смог найти, как отменить это поведение.

Можно ли установить цвет контекстных меню независимо от темы ОС?

Снимки экрана

Электрон 5.0.6 контекстменю (тема Windows 10 темная, но Electron не поддерживает темы)

enter image description here

Electron 6.1.3 контекстное меню (Windows 10тема темная) [Также текст почему-то урезан]

enter image description here

1 Ответ

0 голосов
/ 07 ноября 2019

У меня нет возможности проверить это, но в самой последней Electron 7.1.0, nativeTheme.themeSource может быть то, что вы ищете:

Свойство Stringэто может быть system , light или dark . Он используется для переопределения и замены значения, которое Chromium выбрал для внутреннего использования.

Установка этого свойства на system удалит переопределение, и все будет сброшено до значения по умолчанию ОС. По умолчанию themeSource имеет значение system .

[...]

Установка этого свойства на light будет иметь следующие эффекты:

  • nativeTheme.shouldUseDarkColors будет иметь значение false при обращении
  • Любой пользовательский интерфейс Electron визуализируется в Linux и Windows, включая контекстные меню , devtools и т. Д. Будет использовать легкий пользовательский интерфейс.
  • Любой пользовательский интерфейс, который ОС отображает в macOS, включая меню, оконные рамы и т. Д., Будет использовать облегченный пользовательский интерфейс.
  • CSS-запрос prefer-color-circuit будет соответствовать легкому режиму.
  • обновленное событие будет отправлено
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...