Динамизация заливки фона

<< Click to Display Table of Contents >>

Navigation:  Создание окон для клиента визуализации > Рекомендации по созданию окон > Динамизация SVG элементов > Практические сценарии динамизации > Изменение цвета >

Динамизация заливки фона

1.Воспользуемся готовой SVG обычного квадрата с заливкой #006398 (rect.svg):

<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">

<rect width="100" height="100" fill="#006398"/>

</svg>

2.Для сценария нужно обратить внимание на тег rect и его атрибут fill, который отвечает за заливку фона. 

3.Добавим в rect новый атрибут id со значением rect_color, чтобы XML смог к нему обратиться. Записывается это следующим образом: id="rect_color":

<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">

<rect id="rect_color" width="100" height="100" fill="#006398"/>

</svg>

4.SVG готов, теперь приступим к импорту:

Создаем новое окно > ПК мыши по Окну > Импорт SVG:

SVG_scenarii_cvet_dinam_1

5.В окне импорта SVG создадим Параметр и присвоим ему следующие значения:

Имя параметра

Id элемента SVG

Атрибут элемента SVG

color

rect_color

fill

SVG_scenarii_cvet_dinam_2

Нажимаем Применить.

Важно! Если импорт прошел неудачно, то нужно самостоятельно создать XML с названием как у SVG, в примере выше название XML будет "rect.xml". Далее, нужно проверить, какой тип параметра установился по умолчанию. Для динамизации цвета нужно использовать тип: Type="HMI.SolidColorType", иначе цвет динамизировать не получится. Ниже приведён рабочий XML:

<?xml version="1.0" encoding="utf-8"?>

<SvgDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CreateCommonAvary="false">

  <ParameterDefs>

    <ParameterDef DisplayName="color" Type="HMI.SolidColorType" ParamType="Attribute" ItemId="rect_color" Path="fill" />

  </ParameterDefs>

</SvgDef>

Если всё сделано верно, то в панели свойств появится специальное свойство, благодаря которому можно видоизменять иконку:

SVG_scenarii_cvet_dinam_3

6.Создадим новое окно. В него добавим кнопку выбора цвета и SVG:

SVG_scenarii_cvet_dinam_4

7.Выбираем кнопку выбора цвета и связываем с помощью зажатия ПК мыши свойство Значение кнопки выбора цвета со свойством color SVG:

SVG_scenarii_cvet_dinam_5

8.Назначаем Окно как стартовое и запускаем проект на исполнение.

Теперь благодаря кнопке выбора цвета можно изменять заливку у квадрата:

SVG_scenarii_cvet_dinam_6_a     SVG_scenarii_cvet_dinam_6_b     SVG_scenarii_cvet_dinam_6_c