2017-01-15 4 views
2

Я использую Electron и пытаюсь разработать приложение для подносов (меню).Значок электронного трека меняется в зависимости от темной темы?

enter image description here

Я знаю, как установить значок:

const {Tray} = require('electron') 
appIcon = new Tray('/path/to/my/icon') 

Как создать иконку (или выберите другой), который будет менять цвет в зависимости от темы (нормальный или темный) что пользователь выбрал?

В приведенном выше примере я использую темную тему, поэтому я могу создать белый значок, но что происходит, когда пользователь имеет обычную белую тему?

ответ

2

Вы должны использовать шаблон изображения (только черные и четкие цвета): https://github.com/electron/electron/blob/master/docs/api/native-image.md#template-image

Таким образом, MacOs автоматически настраивает иконку в трее, чтобы быть черным, когда на нормальную тему, и белым цветом, когда на темной темы.

Убедитесь, что имя файла оканчивается Template.png или оно не будет работать! Также укажите версию @2x.png, если вы нацеливаете устройства hi-dpi.

Так папка будет выглядеть следующим образом:

. 
├── main.js 
├── IconTemplate.png 
└── [email protected] 

Затем в main.js:

const {Tray} = require('electron') 
appIcon = new Tray('./IconTemplate.png') 
+0

У вас есть больше информации о том, как следует создавать эти образы? Это какая-то карта спрайтов? Габаритные размеры? и т. д. – ajames

+1

Просто обычный файл .png. Просто имейте в виду использовать только черные и прозрачные цвета. На моем Mac, 22px для нормального dpi и 44px для hi-dpi, кажется, работает хорошо, но проверьте себя. –

Смежные вопросы