Изменение цвета текста на диалоги Wix

Я новичок в создании инсталляторов с использованием Wix, мне удалось все это сделать, и инсталлятор работает, как и ожидалось. Единственная проблема, с которой я столкнулся, это то, что я использую фоновое изображение и изображение баннера для диалогов WixUI_Minimal, и это темные цветные изображения, поэтому часть текста теперь отображается, поскольку цвет текста черный.

Я хотел бы знать, как изменить цвет текста на другой цвет в каждом из диалоговых окон в зависимости от потребностей. На первом экране, где находится лицензионное соглашение, я хочу, чтобы он был оранжевым, а в процессе установки в верхнем баннере - белым. Как мне этого добиться?

2 ответа

Наборы графических интерфейсов WiX по умолчанию: графические интерфейсы WiX MSI по умолчанию включены из DLL WixUIExtension.dll, Обычно вы просто добавляете ссылку на этот файл в свой проект WiX и указываете набор графического интерфейса WiX по умолчанию, такой как <UIRef Id="WixUI_Mondo" /> или же <UIRef Id="WixUI_Minimal" /> - и это достаточно хорошо. WixUIExtension.dll Файл можно найти в основном каталоге установки WiX в папке % ProgramFiles (X86)%.

1) Встроенная настройка диалогов WiX: Есть несколько способов немного изменить эти диалоги настройки WiX. Общий метод описан здесь: Настройка встроенных диалоговых наборов WixUI. Я думаю, что это должно быть достаточно для вашей цели. Возможные настройки: 1) Указание файла лицензионного соглашения для конкретного продукта. 2) Задание растровых изображений пользовательского интерфейса настройки для конкретного продукта. 3) Добавление дополнительного флажка и дополнительного текста в ExitDlg. 4) Настройка текста, отображаемого во встроенных диалогах. 5) Изменение последовательности интерфейса встроенного диалогового набора. 6) Вставка пользовательского диалога во встроенный набор диалогов.

2) Изменить диалоговые окна по умолчанию - Расширенные диалоговые окна. Помимо незначительной настройки диалогов с помощью метода, описанного выше, иногда требуются масштабные изменения. Затем вам нужно скопировать исходные файлы диалога в папку вашего проекта, а затем переставить их в соответствии с их потребностями. Это несколько связано, но не ракетостроение. Вы просто копируете исходные файлы диалога WiX в папку вашего проекта. Я не думаю, что это необходимо для вашей цели. Я постараюсь выкопать ссылку, которая описывает процедуру.

3) Внешний графический интерфейс: просто отметим, что вы можете эффективно заменить встроенный графический интерфейс MSI своим собственным с помощью функции MsiSetExternalUI. Загрузчик WiX использует это, чтобы позволить пользователям реализовать свой собственный графический интерфейс настройки.


Предлагаемый подход: для вашей цели я бы добавил файл локализации в ваш проект (если у вас его нет): Right Click WiX Project => Add => New Item... => Убедитесь, что WiX 3выбран в левой панели => Double click "Localization File", В файле локализации WiX переопределите строку, которую вы хотите переопределить. Здесь WelcomeEulaDlg's"Title" строка указана в вашем новом файле локализации WiX (*.wxl):

<String Id="WelcomeEulaDlgTitle">{\Test}This is my custom string3!</String>

В вашем файле проекта:

<UI>
  <UIRef Id="WixUI_Minimal" />
  <TextStyle Id="Test" FaceName="Arial" Blue="255" Size="12" Strike="yes" />
</UI>

Ключ, чтобы установить цвет является TextStyle element, Вы манипулируете Red, Blue а также Green атрибуты, чтобы получить цвет, который вы хотите. Этот диалог можно найти в репозитории WiX git здесь: WelcomeEulaDlgTitle. Затем вы ссылаетесь на TextStyle - в данном случае Test - в вашей локализованной строке, используя эту забавную запись: {\Test}, Смотрите строку выше. Обновить и добавить TextStyle идентификаторы в зависимости от обстоятельств. Вот фактический диалог после компиляции:

Индивидуальный заголовок диалога WiX

Для удобства:


Обнаружил это после написания выше, это по сути то же самое в более компактной форме без скриншотов: Настройка текста в стандартных диалогах Wix

Спасибо за ваш ответ. Я смог справиться с этим, зайдя в исходный код Wix SDK и проверив, какие идентификаторы элементов я хотел настроить. Настроил строку в файле локализации (.wxl), а также в Product.wix, на который я ссылался.

Другие вопросы по тегам