Path иконка

<< Click to Display Table of Contents >>

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

Path иконка

Сценарий: Использовать только одну SVG иконку с возможностью заменять ее на любую другую иконку.

Ссылка на ресурсы документации: https://disk.yandex.ru/d/3gNiZLJ5G_MmYA

Важно! В данном примере у всех иконок в качестве отрисовки используется только path с атрибутом d.

1.Подготавливаем изображение и вместо того чтобы импортировать каждое из них, импортируем только одну SVG иконку.

Но перед импортом нужно подготовить SVG, а XML создать при импорте.

2.Текущий код SVG close.svg:

hmtoggle_plus1close.svg

3.Для сценария нужно обратить внимание на тег path и его атрибут d, который предоставляет определение пути для рисования.

4.Добавим в path новый атрибут id со значением path-icon, чтобы XML смог к нему обратиться, записывается это таким образом: id="path-icon":

hmtoggle_plus1close.svg

5.Иконка готова, теперь приступаем к импорту.

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

SVG_scenarii_cvet_dinam_1

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

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

Id элемента SVG

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

path

path-icon

d

Примечание: path-icon - это название id внутри SVG, который был добавлен в пункте 4.

SVG_scenarii_path

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

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

SVG_scenarii_path_2

8.Создадим новое окно Окно 1.

Добавим в него выпадающий список.

Значение свойства Список у выпадающего списка запишем в виде названий иконок с разделителем в виде тильды (~).

Свойство Список: block~bolt~close~home~menu~settings.

SVG_scenarii_path_3

Перенесем SVG иконку в окно:

SVG_scenarii_path_4

9.Теперь связываем с помощью зажатия ПК мыши свойство Выбор выпадающего списка со свойством path SVG:

SVG_scenarii_path_5

10.Нажимаем на SVG иконку и открываем конвертер связей:

SVG_scenarii_path_6

11.Выбираем тип конвертации Точечная. И добавляем элементы из свойства Список выпадающего списка: block, bolt, close, home, menu, settings.

Источник

Приемник

block

M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z

bolt

M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z

close

M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z

home

M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z

menu

M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z

settings

M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z

SVG_scenarii_path_7

Следующим этапом для каждого источника заполним столбец Приемник.

12.С помощью редакторов кода или блокнота Windows зайдем в каждую иконку и скопируем значение из тега path с атрибутом d, кроме close.svg, т.к. значение d данной иконки уже есть.

SVG_scenarii_path_8

hmtoggle_plus1menu.svg
hmtoggle_plus1block.svg
hmtoggle_plus1settings.svg
hmtoggle_plus1bolt.svg
hmtoggle_plus1home.svg

13.Получаем следующий результат:

К каждому источнику добавили d, который ему соответствует.

При выборе конкретной иконки применится нужное значение d.

Источник

Приемник

block

M12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C12.9 20 13.7667 19.8542 14.6 19.5625C15.4333 19.2708 16.2 18.85 16.9 18.3L5.7 7.1C5.15 7.8 4.72917 8.56667 4.4375 9.4C4.14583 10.2333 4 11.1 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20ZM18.3 16.9C18.85 16.2 19.2708 15.4333 19.5625 14.6C19.8542 13.7667 20 12.9 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C11.1 4 10.2333 4.14583 9.4 4.4375C8.56667 4.72917 7.8 5.15 7.1 5.7L18.3 16.9Z

bolt

M10.55 18.2L15.725 12H11.725L12.45 6.325L7.825 13H11.3L10.55 18.2ZM8 22L9 15H4L13 2H15L14 10H20L10 22H8Z

close

M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z

home

M6 19H9V13H15V19H18V10L12 5.5L6 10V19ZM4 21V9L12 3L20 9V21H13V15H11V21H4Z

menu

M3 18V16H21V18H3ZM3 13V11H21V13H3ZM3 8V6H21V8H3Z

settings

M9.25 22L8.85 18.8C8.63333 18.7167 8.42917 18.6167 8.2375 18.5C8.04583 18.3833 7.85833 18.2583 7.675 18.125L4.7 19.375L1.95 14.625L4.525 12.675C4.50833 12.5583 4.5 12.4458 4.5 12.3375V11.6625C4.5 11.5542 4.50833 11.4417 4.525 11.325L1.95 9.375L4.7 4.625L7.675 5.875C7.85833 5.74167 8.05 5.61667 8.25 5.5C8.45 5.38333 8.65 5.28333 8.85 5.2L9.25 2H14.75L15.15 5.2C15.3667 5.28333 15.5708 5.38333 15.7625 5.5C15.9542 5.61667 16.1417 5.74167 16.325 5.875L19.3 4.625L22.05 9.375L19.475 11.325C19.4917 11.4417 19.5 11.5542 19.5 11.6625V12.3375C19.5 12.4458 19.4833 12.5583 19.45 12.675L22.025 14.625L19.275 19.375L16.325 18.125C16.1417 18.2583 15.95 18.3833 15.75 18.5C15.55 18.6167 15.35 18.7167 15.15 18.8L14.75 22H9.25ZM11 20H12.975L13.325 17.35C13.8417 17.2167 14.3208 17.0208 14.7625 16.7625C15.2042 16.5042 15.6083 16.1917 15.975 15.825L18.45 16.85L19.425 15.15L17.275 13.525C17.3583 13.2917 17.4167 13.0458 17.45 12.7875C17.4833 12.5292 17.5 12.2667 17.5 12C17.5 11.7333 17.4833 11.4708 17.45 11.2125C17.4167 10.9542 17.3583 10.7083 17.275 10.475L19.425 8.85L18.45 7.15L15.975 8.2C15.6083 7.81667 15.2042 7.49583 14.7625 7.2375C14.3208 6.97917 13.8417 6.78333 13.325 6.65L13 4H11.025L10.675 6.65C10.1583 6.78333 9.67917 6.97917 9.2375 7.2375C8.79583 7.49583 8.39167 7.80833 8.025 8.175L5.55 7.15L4.575 8.85L6.725 10.45C6.64167 10.7 6.58333 10.95 6.55 11.2C6.51667 11.45 6.5 11.7167 6.5 12C6.5 12.2667 6.51667 12.525 6.55 12.775C6.58333 13.025 6.64167 13.275 6.725 13.525L4.575 15.15L5.55 16.85L8.025 15.8C8.39167 16.1833 8.79583 16.5042 9.2375 16.7625C9.67917 17.0208 10.1583 17.2167 10.675 17.35L11 20ZM12.05 15.5C13.0167 15.5 13.8417 15.1583 14.525 14.475C15.2083 13.7917 15.55 12.9667 15.55 12C15.55 11.0333 15.2083 10.2083 14.525 9.525C13.8417 8.84167 13.0167 8.5 12.05 8.5C11.0667 8.5 10.2375 8.84167 9.5625 9.525C8.8875 10.2083 8.55 11.0333 8.55 12C8.55 12.9667 8.8875 13.7917 9.5625 14.475C10.2375 15.1583 11.0667 15.5 12.05 15.5Z

svg_scenarii_path_9

Закрываем окно конвертации.

14.Назначаем Окно как стартовое.

15.Запускаем проект на исполнение и видим, что при переключении отображается нужная иконка:

svg_scenarii_path_9_a

svg_scenarii_path_9_b

svg_scenarii_path_9_c

svg_scenarii_path_9_d

svg_scenarii_path_9_e

svg_scenarii_path_9_f