{"id":462652,"date":"2025-06-10T09:41:05","date_gmt":"2025-06-10T09:41:05","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=462652"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=462652","title":{"rendered":"<span>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 Avalonia\/WPF \u0434\u043b\u044f \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 Bootstrap Icons<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a class=\"anchor\" name=\"intro\" id=\"intro\"><\/a><\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/417\/6d3\/37a\/4176d337a97d1ba1e2e858ec35d0a4ed.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 Bootstrap Icons\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/417\/6d3\/37a\/4176d337a97d1ba1e2e858ec35d0a4ed.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/417\/6d3\/37a\/4176d337a97d1ba1e2e858ec35d0a4ed.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 Bootstrap Icons<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043c\u0438\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0431\u0443\u0434\u044c \u0442\u043e \u0432\u0435\u0431 \u0438\u043b\u0438 \u0434\u0435\u0441\u043a\u0442\u043e\u043f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043e\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0442\u044a\u0435\u043c\u043b\u0435\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0412\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u0438\u043a\u043e\u043d\u043a\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u044b\u0445, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/icons.getbootstrap.com\/\" rel=\"noopener noreferrer nofollow\">Bootstrap Icons<\/a>, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0431\u043e\u043b\u0435\u0435 2000 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a. \u0425\u043e\u0442\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f Bootstrap Icons \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043a\u0430\u043a npm-\u043f\u0430\u043a\u0435\u0442 <a href=\"https:\/\/www.npmjs.com\/package\/bootstrap-icons\" rel=\"noopener noreferrer nofollow\">bootstrap-icons<\/a> \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443, \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441 \u043d\u0443\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0430 Avalonia\/WPF. \u0421\u0430\u043c\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0431\u0435\u0440\u0435\u043c \u0438\u0437 SVG-\u0444\u0430\u0439\u043b\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <code>bootstrap-icons<\/code>, \u043e\u0442\u0441\u044e\u0434\u0430 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430.<\/p>\n<p>\u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445 \u0441 Avalonia \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0443\u043f\u043e\u0440 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 Avalonia. \u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f WPF, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0441 WPF \u043d\u0430 Avalonia.<\/p>\n<p>\ud83d\udd17 \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044b <code>BootstrapIcon<\/code> \u0434\u043b\u044f Avalonia \u0438 WPF \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u043d\u0430 <a href=\"https:\/\/github.com\/schavelev\/path-icons\/tree\/main\/examples\/AppIcons\" rel=\"noopener noreferrer nofollow\">GitHub<\/a>.<\/p>\n<blockquote>\n<p><strong>\ud83d\udc49 \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442&#8230;<\/strong><br \/> \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0435\u0449\u0451 \u043f\u0430\u0440\u044b \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0430 ToolBar \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <code>BootstrapIcon<\/code>.<\/p>\n<\/blockquote>\n<p><strong>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"#intro\" rel=\"noopener noreferrer nofollow\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#concept_structure\" rel=\"noopener noreferrer nofollow\">\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step1\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 1: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step2\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 2: \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043e\u043a \u0432 SharedLib<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step3\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 3: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f Avalonia<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step4\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 4: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f Avalonia<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step5\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 5: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f WPF<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step6\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 6: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f WPF<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#conclusion\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"concept_structure\" id=\"concept_structure\"><\/a><\/p>\n<h2>\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430<\/h2>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code>, \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043b\u0435\u0436\u0438\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0432\u044b\u0431\u043e\u0440\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 Bootstrap Icons \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0438\u043a\u043e\u043d\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431 \u0438\u043a\u043e\u043d\u043a\u0430\u0445 \u0432 \u043a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u0449\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Avalonia \u0438 WPF.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e Bootstrap Icons?<\/h3>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ll\/sr\/ke\/llsrkeinjjfvq_nvlv_ueky0aai.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/ll\/sr\/ke\/llsrkeinjjfvq_nvlv_ueky0aai.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/ll\/sr\/ke\/llsrkeinjjfvq_nvlv_ueky0aai.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u043c\u0438\u0440\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <a href=\"https:\/\/fonts.google.com\/icons\" rel=\"noopener noreferrer nofollow\">Google Fonts Icons<\/a>, <a href=\"https:\/\/feathericons.com\" rel=\"noopener noreferrer nofollow\">Feather Icons<\/a>, <a href=\"https:\/\/fontawesome.com\/\" rel=\"noopener noreferrer nofollow\">Font Awesome<\/a> \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e <a href=\"https:\/\/icons.getbootstrap.com\/\" rel=\"noopener noreferrer nofollow\">Bootstrap Icons<\/a> \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<ul>\n<li>\n<p><strong>\u041f\u043e\u043b\u043d\u043e\u0442\u0430 \u0438 \u0441\u0442\u0438\u043b\u044c<\/strong>: \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0431\u043e\u043b\u0435\u0435 2000 \u0438\u043a\u043e\u043d\u043e\u043a, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f; \u0432\u044b\u0434\u0435\u0440\u0436\u0430\u043d\u0430 \u0432 \u0435\u0434\u0438\u043d\u043e\u043c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u0441\u0442\u0438\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f<\/strong>: Bootstrap Icons \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u043b\u0438\u0447\u043d\u044b\u0445 \u0438 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p><strong>\u0415\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0434\u0438\u0437\u0430\u0439\u043d\u0430<\/strong>: \u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a Bootstrap \u0438 \u0435\u0433\u043e \u0438\u043a\u043e\u043d\u043a\u0438 \u0434\u043b\u044f \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0432\u044b\u0431\u043e\u0440 Bootstrap Icons \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Avalonia\/WPF \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0435\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f \u0432 \u0434\u0438\u0437\u0430\u0439\u043d\u0435 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 SVG-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/strong>: \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0438 \u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 SVG: <\/p>\n<ul>\n<li>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e (2070 \u0438\u0437 2074) Bootstrap Icons \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b <code>&lt;path&gt;<\/code> (\u043d\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 <code>&lt;circle&gt;<\/code>, <code>&lt;rect&gt;<\/code>), \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432\u0440\u043e\u0434\u0435 <code>stroke-width<\/code>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 SVG-\u0444\u0430\u0439\u043b\u0430: \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0438\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>d<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;path&gt;<\/code> \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 Bootstrap Icons \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u043c\u043a\u0430 \u0438 \u0437\u043d\u0430\u0447\u043e\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u0430\u043c\u043a\u0438), \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c <code>&lt;path&gt;<\/code> \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c SVG. \u042d\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0442\u0430\u043a\u043e\u043c\u0443 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438<\/strong>: \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b SVG-\u0444\u0430\u0439\u043b\u043e\u0432 Bootstrap Icons \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u043a\u043e\u043d\u043e\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e JSON-\u0444\u0430\u0439\u043b\u0443 \u0441 \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u0438\u043a\u043e\u043d\u043e\u043a \u0438 \u0438\u0445 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043a\u043e\u0434 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>BootstrapSymbol<\/code> (\u043e \u043d\u0451\u043c \u2014 \u043d\u0438\u0436\u0435).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 Avalonia\/WPF \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0441 \u0446\u0435\u043b\u044b\u043c\u0438 SVG-\u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u0430 \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0442\u0438\u043f\u0430 <code>StreamGeometry<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0437 \u0441\u0442\u0440\u043e\u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>d<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;path&gt;<\/code>. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b SVG-\u0444\u0430\u0439\u043b\u043e\u0432 <code>bootstrap-icons<\/code> \u0434\u0435\u043b\u0430\u044e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u043a\u043e\u043d\u043e\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<h3>\u041f\u043e\u0434\u0445\u043e\u0434 \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h3>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/5b\/6d\/hl\/5b6dhlgbovpxuhsa823xpjxwgtq.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/5b\/6d\/hl\/5b6dhlgbovpxuhsa823xpjxwgtq.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/5b\/6d\/hl\/5b6dhlgbovpxuhsa823xpjxwgtq.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e <code>BootstrapIcon<\/code> \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043d\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u0430\u0445 <code>PathIcon<\/code> &#8212; \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Avalonia. \u0428\u0442\u0430\u0442\u043d\u044b\u0439 <code>PathIcon<\/code> \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u043e\u0434\u043d\u043e\u0433\u043e <code>StreamGeometry<\/code> (\u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043e\u0434\u0438\u043d <code>path<\/code>). \u041d\u0430\u0448 <code>BootstrapIcon<\/code> \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u044d\u0442\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0434\u043e \u0434\u0432\u0443\u0445 <code>StreamGeometry<\/code> \u0441 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e.<\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u043d\u0435 \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u044b (xaml\/axaml-\u0444\u0430\u0439\u043b\u044b), \u0430 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Avalonia \u0438\u043b\u0438 WPF.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u0438\u0437 \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e <code>PathIcon<\/code> \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0432\u043e\u0439 <code>BootstrapIcon<\/code> \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 SVG-\u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <code>bootstrap-icons<\/code>. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043a\u043e\u043d\u043e\u043a \u0438\u0437 \u044d\u0442\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 (\u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u0443).<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430, \u0447\u0442\u043e\u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<h3>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430<\/h3>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/dm\/o6\/j-\/dmo6j-iqi4eheux-cxu-pjr_n5u.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/dm\/o6\/j-\/dmo6j-iqi4eheux-cxu-pjr_n5u.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/dm\/o6\/j-\/dmo6j-iqi4eheux-cxu-pjr_n5u.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b <code>BootstrapIcon<\/code>, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u2014 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 Avalonia, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043a\u0438 \u0442\u0440\u0435\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:<\/p>\n<ol>\n<li>\n<p><code>&lt;PathIcon&gt;<\/code> \u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e).<\/p>\n<\/li>\n<li>\n<p><code>&lt;PathIcon&gt;<\/code> \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u0437\u0430\u043b\u0438\u0432\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><code>&lt;Viewbox&gt;<\/code> \u0441 \u0434\u0432\u0443\u043c\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 <code>&lt;Path&gt;<\/code>, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0446\u0432\u0435\u0442, \u2014 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code>.<\/p>\n<\/li>\n<\/ol>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b .NET SDK 8.0 (\u0438\u043b\u0438 \u043d\u043e\u0432\u0435\u0435) \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b Avalonia. \u0415\u0441\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b Avalonia \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0438\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">dotnet new install Avalonia.Templates <\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Avalonia \u0432 \u043b\u044e\u0431\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">dotnet new avalonia.app -n TryIcon -f net8.0 <\/code><\/pre>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0432 <code>MainWindow.axaml<\/code>, \u0433\u0434\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0438\u043a\u043e\u043d\u043a\u0443 &#171;database-x&#187; \u0442\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:<\/p>\n<ol>\n<li>\n<p><strong>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438:<\/strong> <a href=\"https:\/\/icons.getbootstrap.com\/icons\/database-x\/\" rel=\"noopener noreferrer nofollow\">\u041d\u0430 \u0441\u0430\u0439\u0442\u0435 Bootstrap Icons<\/a> \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0438\u0437 SVG-\u0444\u0430\u0439\u043b\u0430 \u0438\u043a\u043e\u043d\u043a\u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>d<\/code> \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <code>&lt;path&gt;<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432:<\/strong> \u0412 <code>&lt;Window.Resources&gt;<\/code> \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c: <\/p>\n<ul>\n<li>\n<p>\u0414\u0432\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 <code>&lt;StreamGeometry x:Key=\"PrimaryGeometry\"\/&gt;<\/code> \u0438 <code>&lt;StreamGeometry x:Key=\"SecondaryGeometry\"\/&gt;<\/code> \u0434\u043b\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438 (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>path.d<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0441\u0443\u0440\u0441 <code>&lt;StreamGeometry x:Key=\"IconGeometry\"\/&gt;<\/code> \u043a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 (\u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b) \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438 \u0448\u0442\u0430\u0442\u043d\u044b\u043c <code>PathIcon<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 <code>&lt;SolidColorBrush&gt;<\/code> (\u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 <code>IconBrush<\/code>, <code>PrimaryForeground<\/code>, <code>SecondaryForeground<\/code>) \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/strong> \u0412 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u043e\u043a\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c <code>&lt;StackPanel&gt;<\/code> \u0441 \u0442\u0440\u0435\u043c\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438: <\/p>\n<ul>\n<li>\n<p>\u0414\u0432\u0430 <code>PathIcon<\/code>, \u0441\u0441\u044b\u043b\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u0443\u044e <code>IconGeometry<\/code> (\u043e\u0434\u0438\u043d \u0431\u0435\u0437 \u0446\u0432\u0435\u0442\u0430, \u0432\u0442\u043e\u0440\u043e\u0439 \u0441 <code>IconBrush<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u041e\u0434\u0438\u043d <code>&lt;Viewbox&gt;<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0430\u0448\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u043c <code>BootstrapIcon<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <code>&lt;Viewbox&gt;<\/code> \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 <code>BootstrapIcon<\/code>:<\/p>\n<pre><code class=\"xml\">&lt;Viewbox Width=\"32\" Height=\"32\" Stretch=\"Uniform\"&gt;     &lt;Panel&gt;         &lt;Path Width=\"16\" Height=\"16\" Stretch=\"None\"               Data=\"{StaticResource PrimaryGeometry}\"               Fill=\"{StaticResource PrimaryForeground}\"\/&gt;         &lt;Path Width=\"16\" Height=\"16\" Stretch=\"None\"               Data=\"{StaticResource SecondaryGeometry}\"               Fill=\"{StaticResource SecondaryForeground}\"\/&gt;     &lt;\/Panel&gt; &lt;\/Viewbox&gt; <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;Path&gt;<\/code> \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0432\u043d\u0443\u0442\u0440\u0438 <code>&lt;Panel&gt;<\/code>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0438\u043c \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 <code>&lt;Path&gt;<\/code> \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0438\u0437 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>PrimaryGeometry<\/code> \u0438 \u0437\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u043e\u043c \u0438\u0437 <code>PrimaryForeground<\/code>. \u0412\u0442\u043e\u0440\u043e\u0439 <code>&lt;Path&gt;<\/code> \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 <code>SecondaryGeometry<\/code> \u0438 <code>SecondaryForeground<\/code>.<\/p>\n<p>\u041e\u0431\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;Path&gt;<\/code> \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b 16&#215;16 (\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043a\u043e\u043d\u043e\u043a Bootstrap) \u0441 \u0437\u0430\u043f\u0440\u0435\u0442\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f (<code>Stretch=\"None\"<\/code>). \u042d\u043b\u0435\u043c\u0435\u043d\u0442 <code>&lt;Viewbox&gt;<\/code> \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 <code>&lt;Panel&gt;<\/code> \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code> (<code>Stretch=\"Uniform\"<\/code>).<\/p>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 <code>MainWindow.axaml<\/code> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0438\u0436\u0435.<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 MainWindow.axaml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;Window xmlns=\"https:\/\/github.com\/avaloniaui\"         xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"         xmlns:d=\"http:\/\/schemas.microsoft.com\/expression\/blend\/2008\"         xmlns:mc=\"http:\/\/schemas.openxmlformats.org\/markup-compatibility\/2006\"         mc:Ignorable=\"d\" d:DesignWidth=\"800\" d:DesignHeight=\"450\"         x:Class=\"TryIcon.MainWindow\"         Title=\"TryIcon\"&gt;     &lt;Window.Resources&gt;         &lt;StreamGeometry x:Key=\"IconGeometry\"&gt;M12.096 6.223A5 5 0 0 0 13 5.698V7c0 .289-.213.654-.753 1.007a4.5 4.5 0 0 1 1.753.25V4c0-1.007-.875-1.755-1.904-2.223C11.022 1.289 9.573 1 8 1s-3.022.289-4.096.777C2.875 2.245 2 2.993 2 4v9c0 1.007.875 1.755 1.904 2.223C4.978 15.71 6.427 16 8 16c.536 0 1.058-.034 1.555-.097a4.5 4.5 0 0 1-.813-.927Q8.378 15 8 15c-1.464 0-2.766-.27-3.682-.687C3.356 13.875 3 13.373 3 13v-1.302c.271.202.58.378.904.525C4.978 12.71 6.427 13 8 13h.027a4.6 4.6 0 0 1 0-1H8c-1.464 0-2.766-.27-3.682-.687C3.356 10.875 3 10.373 3 10V8.698c.271.202.58.378.904.525C4.978 9.71 6.427 10 8 10q.393 0 .774-.024a4.5 4.5 0 0 1 1.102-1.132C9.298 8.944 8.666 9 8 9c-1.464 0-2.766-.27-3.682-.687C3.356 7.875 3 7.373 3 7V5.698c.271.202.58.378.904.525C4.978 6.711 6.427 7 8 7s3.022-.289 4.096-.777M3 4c0-.374.356-.875 1.318-1.313C5.234 2.271 6.536 2 8 2s2.766.27 3.682.687C12.644 3.125 13 3.627 13 4c0 .374-.356.875-1.318 1.313C10.766 5.729 9.464 6 8 6s-2.766-.27-3.682-.687C3.356 4.875 3 4.373 3 4 M12.5 16a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7m-.646-4.854.646.647.646-.647a.5.5 0 0 1 .708.708l-.647.646.647.646a.5.5 0 0 1-.708.708l-.646-.647-.646.647a.5.5 0 0 1-.708-.708l.647-.646-.647-.646a.5.5 0 0 1 .708-.708&lt;\/StreamGeometry&gt;         &lt;StreamGeometry x:Key=\"PrimaryGeometry\"&gt;M12.096 6.223A5 5 0 0 0 13 5.698V7c0 .289-.213.654-.753 1.007a4.5 4.5 0 0 1 1.753.25V4c0-1.007-.875-1.755-1.904-2.223C11.022 1.289 9.573 1 8 1s-3.022.289-4.096.777C2.875 2.245 2 2.993 2 4v9c0 1.007.875 1.755 1.904 2.223C4.978 15.71 6.427 16 8 16c.536 0 1.058-.034 1.555-.097a4.5 4.5 0 0 1-.813-.927Q8.378 15 8 15c-1.464 0-2.766-.27-3.682-.687C3.356 13.875 3 13.373 3 13v-1.302c.271.202.58.378.904.525C4.978 12.71 6.427 13 8 13h.027a4.6 4.6 0 0 1 0-1H8c-1.464 0-2.766-.27-3.682-.687C3.356 10.875 3 10.373 3 10V8.698c.271.202.58.378.904.525C4.978 9.71 6.427 10 8 10q.393 0 .774-.024a4.5 4.5 0 0 1 1.102-1.132C9.298 8.944 8.666 9 8 9c-1.464 0-2.766-.27-3.682-.687C3.356 7.875 3 7.373 3 7V5.698c.271.202.58.378.904.525C4.978 6.711 6.427 7 8 7s3.022-.289 4.096-.777M3 4c0-.374.356-.875 1.318-1.313C5.234 2.271 6.536 2 8 2s2.766.27 3.682.687C12.644 3.125 13 3.627 13 4c0 .374-.356.875-1.318 1.313C10.766 5.729 9.464 6 8 6s-2.766-.27-3.682-.687C3.356 4.875 3 4.373 3 4&lt;\/StreamGeometry&gt;         &lt;StreamGeometry x:Key=\"SecondaryGeometry\"&gt;M12.5 16a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7m-.646-4.854.646.647.646-.647a.5.5 0 0 1 .708.708l-.647.646.647.646a.5.5 0 0 1-.708.708l-.646-.647-.646.647a.5.5 0 0 1-.708-.708l.647-.646-.647-.646a.5.5 0 0 1 .708-.708&lt;\/StreamGeometry&gt;         &lt;SolidColorBrush x:Key=\"IconBrush\" Color=\"#7c3aed\"\/&gt;         &lt;SolidColorBrush x:Key=\"PrimaryForeground\" Color=\"#7c3aed\"\/&gt;         &lt;SolidColorBrush x:Key=\"SecondaryForeground\" Color=\"Red\"\/&gt;     &lt;\/Window.Resources&gt;     &lt;StackPanel Orientation=\"Horizontal\" VerticalAlignment=\"Top\" Spacing=\"8\" Margin=\"4\"&gt;         &lt;PathIcon Width=\"32\" Height=\"32\"                   Data=\"{StaticResource IconGeometry}\"\/&gt;         &lt;PathIcon Width=\"32\" Height=\"32\"                   Data=\"{StaticResource IconGeometry}\"                   Foreground=\"{StaticResource IconBrush}\" \/&gt;         &lt;Viewbox Width=\"32\" Height=\"32\" Stretch=\"Uniform\"&gt;             &lt;Panel&gt;                 &lt;Path Width=\"16\" Height=\"16\" Stretch=\"None\"                       Data=\"{StaticResource PrimaryGeometry}\"                       Fill=\"{StaticResource PrimaryForeground}\"\/&gt;                 &lt;Path Width=\"16\" Height=\"16\" Stretch=\"None\"                       Data=\"{StaticResource SecondaryGeometry}\"                       Fill=\"{StaticResource SecondaryForeground}\"\/&gt;             &lt;\/Panel&gt;         &lt;\/Viewbox&gt;     &lt;\/StackPanel&gt; &lt;\/Window&gt; <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0438\u043a\u043e\u043d\u043a\u0443 \u0432 \u0442\u0440\u0435\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445: \u0434\u0432\u0430 \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u044b\u0445 \u0438 \u043e\u0434\u0438\u043d \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0439.<\/p>\n<p>\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 Avalonia, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044f \u0435\u0435 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0438 \u0446\u0432\u0435\u0442\u0430 \u0447\u0430\u0441\u0442\u0435\u0439 \u043a\u0430\u043a \u0440\u0435\u0441\u0443\u0440\u0441\u044b. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u042d\u0442\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043a\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0438\u043a\u043e\u043d\u043a\u0438 \u043d\u0435 \u043a\u0430\u043a XAML-\u0440\u0435\u0441\u0443\u0440\u0441\u044b.<\/p>\n<h3>\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 BootstrapSymbol<\/h3>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0434\u043e\u0431\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0438\u043a\u043e\u043d\u043a\u0430\u043c\u0438 \u0432 \u043a\u043e\u0434\u0435 \u043a\u0430\u043a \u0441 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 (\u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438), \u043c\u044b \u0432\u0432\u043e\u0434\u0438\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <code>BootstrapSymbol<\/code>. \u041a\u0430\u0436\u0434\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0432\u0437\u044f\u0442\u043e\u0439 \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 Bootstrap Icons \u0438\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e).<\/p>\n<p>\u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431 \u0438\u043a\u043e\u043d\u043a\u0435 (\u0441\u0438\u043c\u0432\u043e\u043b\u0435) \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b <code>SymbolPath<\/code>, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438  <code>BootstrapSymbol<\/code>. \u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043a\u0438 (\u0435\u0435 \u0438\u043c\u044f \u0432 \u043a\u043e\u0434\u0435, \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0438 \u0446\u0432\u0435\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f) \u0432 \u043e\u0431\u0449\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u043a\u043b\u0430\u0441\u0441\u043e\u0432.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043a\u043e\u043d\u043e\u043a \u0432 <code>BootstrapSymbol<\/code>:<\/p>\n<pre><code class=\"cs\">public enum BootstrapSymbol { ...     \/\/ window-sidebar     [SymbolPath(\"M2.5 4...\", 0xffffc107)]     [SymbolPath(\"M2 1...z\", 0xffffc107)]     WindowSidebar,     \/\/ funnel     [SymbolPath(\"M1.5 1.5...z\", KnownColor.RoyalBlue)]     Funnel,     \/\/ sort-alpha-down     [SymbolPath(\"M10.082 5.629z\", KnownColor.RoyalBlue)]     [SymbolPath(\"M12.96 14H9.028...z\", KnownColor.RoyalBlue)]     SortAlphaDown, ... } <\/code><\/pre>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>SymbolPath<\/code> \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>d<\/code> \u0438\u0437 SVG-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;path&gt;<\/code>) \u0438 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0446\u0432\u0435\u0442. \u0414\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f  <code>uint<\/code> (\u0442\u0440\u0430\u043a\u0442\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a ARGB) \u0438\u043b\u0438  \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 <code>System.Drawing.KnownColor<\/code>  (\u043d\u0430\u0431\u043e\u0440 \u0446\u0432\u0435\u0442\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e enum \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c\u0438 HTML-\u0446\u0432\u0435\u0442\u043e\u0432: Aqua, Aquamarine, Gray, Cyan, DarkBlue, Blue \u0438 \u0442.\u0434.).<\/p>\n<p>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>SymbolPath<\/code> \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <code>&lt;path&gt;<\/code> \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c SVG-\u0444\u0430\u0439\u043b\u0435 \u0438\u043a\u043e\u043d\u043a\u0438. \u0426\u0432\u0435\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>SymbolPath<\/code> (\u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430).<\/p>\n<p>\u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0432 <code>SharedLib<\/code> (\u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0434\u0430\u043b\u0435\u0435) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e <code>BootstrapSymbol<\/code> \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043d\u0438\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b <code>SymbolPath<\/code> \u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0443 \u043b\u043e\u0433\u0438\u043a\u0443 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code>.<\/p>\n<h3>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/h3>\n<p>\u041d\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0442\u0440\u0435\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0438\u043a\u043e\u043d\u043e\u043a:<\/p>\n<ul>\n<li>\n<p><strong>SharedLib<\/strong>: \u041a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u0430\u044f (\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0430\u044f \u043e\u0442 Avalonia\/WPF) \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043a\u043e\u043d\u043e\u043a \u0432 \u0432\u0438\u0434\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>BootstrapSymbol<\/code> \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>TryAvalonia<\/strong>: \u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Avalonia UI, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code> \u0434\u043b\u044f Avalonia \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <code>SharedLib<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>TryWpf<\/strong>: \u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 WPF, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code> \u0434\u043b\u044f WPF \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u0442\u0430\u043a\u0436\u0435 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <code>SharedLib<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043a\u043e\u043d\u043e\u043a \u0432 <code>SharedLib<\/code> \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 UI-\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 <code>TryAvalonia<\/code> \u0438 <code>TryWpf<\/code>.<\/p>\n<blockquote>\n<p>\u2755\ufe0f \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044b \u0442\u0438\u043f\u0430 <code>BootstrapIcon<\/code> \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>SharedLib.Ava<\/code> \u0438 <code>SharedLib.Wpf<\/code>), \u043d\u043e \u043c\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435.<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"step1\" id=\"step1\"><\/a><\/p>\n<h2>\u0428\u0430\u0433 1: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432<\/h2>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b .NET SDK (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f .NET 8.0 \u0438\u043b\u0438 \u043d\u043e\u0432\u0435\u0435) \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b Avalonia \u0434\u043b\u044f <code>dotnet new<\/code>. \u0415\u0441\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b Avalonia \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">dotnet new install Avalonia.Templates <\/code><\/pre>\n<p>\u0417\u0430\u0442\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435: \u043e\u043d \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>AppIcons<\/code>, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u0432 \u043d\u0435\u0433\u043e \u0442\u0440\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438:<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\"># \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0435 \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 mkdir AppIcons cd AppIcons dotnet new sln -n AppIcons  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u0449\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 SharedLib, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 dotnet new classlib -n SharedLib -f net8.0 dotnet sln add SharedLib\/SharedLib.csproj  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f Avalonia, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 SharedLib, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 dotnet new avalonia.app -n TryAvalonia -f net8.0 dotnet add TryAvalonia\/TryAvalonia.csproj reference SharedLib\/SharedLib.csproj dotnet sln add TryAvalonia\/TryAvalonia.csproj  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f WPF (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Windows), \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 SharedLib, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 dotnet new wpf -n TryWpf -f net8.0 dotnet add TryWpf\/TryWpf.csproj reference SharedLib\/SharedLib.csproj dotnet sln add TryWpf\/TryWpf.csproj <\/code><\/pre>\n<blockquote>\n<p><code>dotnet new -f net8.0<\/code> # \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0431\u0440\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e .NET<\/p>\n<\/blockquote>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f <code>AppIcons.sln<\/code> \u0441 \u0442\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u0438\u0445 \u0438\u0437 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430:<\/p>\n<pre><code class=\"bash\"># \u0417\u0430\u043f\u0443\u0441\u043a Avalonia \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f dotnet run --project TryAvalonia\/TryAvalonia.csproj  # \u0417\u0430\u043f\u0443\u0441\u043a WPF \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Windows) dotnet run --project TryWpf\/TryWpf.csproj <\/code><\/pre>\n<p><a class=\"anchor\" name=\"step2\" id=\"step2\"><\/a><\/p>\n<h2>\u0428\u0430\u0433 2: \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043e\u043a \u0432 SharedLib<\/h2>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <code>SharedLib<\/code> \u0434\u043b\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u043a\u043e\u043d\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Avalonia\/WPF. \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0430\u043f\u043a\u0443 <code>Controls<\/code> \u0441 \u0442\u0440\u0435\u043c\u044f \u0444\u0430\u0439\u043b\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p><strong>SymbolPathAttribute.cs<\/strong>: \u0410\u0442\u0440\u0438\u0431\u0443\u0442 \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 (<code>path.d<\/code> \u0438\u0437 SVG) \u0438 \u0446\u0432\u0435\u0442\u0430 \u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 <code>BootstrapSymbol<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>BootstrapSymbol.cs<\/strong>: \u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>SymbolPath<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>BootstrapSymbolExtensions.cs<\/strong>: \u041c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f <code>BootstrapSymbol<\/code>, \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u044e\u0449\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>SymbolPath<\/code> \u0438\u0437 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043e\u0432 <code>BootstrapIcon<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041a\u043b\u0430\u0441\u0441 SymbolPathAttribute<\/h3>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>SymbolPathAttribute<\/code> \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e SVG <code>&lt;path&gt;<\/code> \u0438 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u0446\u0432\u0435\u0442\u0430 (\u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445 <code>uint<\/code> ARGB \u0438\u043b\u0438 <code>System.Drawing.KnownColor<\/code>). \u0415\u0441\u043b\u0438 \u0446\u0432\u0435\u0442 \u0432 <code>SymbolPath<\/code> \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d, \u0442\u043e \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 SymbolPathAttribute.cs<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = true)] internal class SymbolPathAttribute : Attribute {     \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 SVG path data \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0438\u043a\u043e\u043d\u043a\u0438.     public string PathData { get; init; }     \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0446\u0432\u0435\u0442 \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u0434\u043b\u044f SVG path.     public Color FillColor { get; init; }      \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 path data (\u0431\u0435\u0437 \u0446\u0432\u0435\u0442\u0430)     public SymbolPathAttribute(string pathData)     {         PathData = pathData;         FillColor = Color.Empty;     }     \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0441 path data \u0438 \u0446\u0432\u0435\u0442\u043e\u043c \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 ARGB uint.     public SymbolPathAttribute(string pathData, uint ardb)     {         PathData = pathData;         FillColor = Color.FromArgb((int)ardb);     }     \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0441 path data \u0438 \u0446\u0432\u0435\u0442\u043e\u043c \u0438\u0437 System.Drawing.KnownColor.     public SymbolPathAttribute(string pathData, KnownColor knownColor)     {         PathData = pathData;         FillColor = Color.FromKnownColor(knownColor);     } } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041d\u0430\u043b\u0438\u0447\u0438\u0435 <code>[AttributeUsage(AllowMultiple = true)]<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c <code>SymbolPath<\/code>  \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e <code>BootstrapSymbol<\/code>. \u042d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0438\u043a\u043e\u043d\u043e\u043a, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 <code>&lt;path&gt;<\/code>. \u041f\u0440\u0438 \u0440\u0443\u0447\u043d\u043e\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0438\u043a\u043e\u043d\u043e\u043a \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 <code>&lt;path&gt;<\/code> \u0438\u0437 SVG-\u0444\u0430\u0439\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 <code>SymbolPath<\/code> (\u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0432\u0443\u0445), \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code>:<\/p>\n<ul>\n<li>\n<p><code>PrimaryGeometry<\/code>: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e <code>SymbolPath<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>PrimaryForeground<\/code>: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0432\u0435\u0442 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e <code>SymbolPath<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>SecondaryGeometry<\/code>: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0438\u0437 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 <code>SymbolPath<\/code> (\u043f\u043e\u0441\u043b\u0435 \u0441\u043b\u0438\u044f\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b);<\/p>\n<\/li>\n<li>\n<p><code>SecondaryForeground<\/code>: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0432\u0435\u0442 \u0438\u0437 \u0432\u0442\u043e\u0440\u043e\u0433\u043e <code>SymbolPath<\/code> (\u0446\u0432\u0435\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f).<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 BootstrapSymbol<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <code>BootstrapSymbol<\/code> \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 <code>SharedLib<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0438\u043a\u043e\u043d\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041a\u0430\u0436\u0434\u043e\u0435 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 <code>SymbolPath<\/code>, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u043c\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e (<code>path.d<\/code>), \u0432\u0437\u044f\u0442\u0443\u044e \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 SVG-\u0444\u0430\u0439\u043b\u043e\u0432 <a href=\"https:\/\/icons.getbootstrap.com\" rel=\"noopener noreferrer nofollow\">bootstrap-icons<\/a> \u0438\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e <code>SymbolPath<\/code> \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0446\u0432\u0435\u0442.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c SVG-\u0444\u0430\u0439\u043b \u0438\u043a\u043e\u043d\u043a\u0438 <a href=\"https:\/\/icons.getbootstrap.com\/icons\/file-earmark-arrow-down\" rel=\"noopener noreferrer nofollow\">file-earmark-arrow-down<\/a>:<\/p>\n<pre><code class=\"xml\">&lt;svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-file-earmark-arrow-down\" viewBox=\"0 0 16 16\"&gt;   &lt;path d=\"M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293z\"\/&gt;   &lt;path d=\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2M9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z\"\/&gt; &lt;\/svg&gt; <\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c SVG \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;path&gt;<\/code>. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>FileEarmarkArrowDown<\/code> \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u0432\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>SymbolPath<\/code>, \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>d<\/code>.<\/p>\n<pre><code class=\"cs\">  \/\/ Export, file-earmark-arrow-down   [SymbolPath(\"M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293z\", 0xff0d6efd)]   [SymbolPath(\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2M9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z\", KnownColor.Green)]   FileEarmarkArrowDown, <\/code><\/pre>\n<p>\u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u043a\u043e\u043d\u043a\u0438 (custom1, custom2), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0432 \u0438\u0445 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 SVG-\u043f\u0443\u0442\u0435\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <a href=\"https:\/\/yqnn.github.io\/svg-path-editor\/\" rel=\"noopener noreferrer nofollow\">svg-path-editor<\/a>). \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0446\u0432\u0435\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"cs\">  \/\/ custom1   [SymbolPath(\"M3,3 8,6 13,3 10,8 13,13 8,10 3,13 6,8z\", KnownColor.Red)]   Custom1,   \/\/ custom2   [SymbolPath(\"M0,0H16V16H0z\", KnownColor.Green)]   [SymbolPath(\"M5,3 13,11 11,13 3,5z M13,5 5,13 3,11 11,3z\", KnownColor.Red)]   Custom2, <\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <code>BootstrapSymbol<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u043a\u043e\u043d\u043e\u043a \u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u043c \u0438 \u043e\u0431\u043e\u0437\u0440\u0438\u043c\u043e\u043c \u0432\u0438\u0434\u0435. \u041e\u0431\u044b\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0434\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f <code>BootstrapSymbol<\/code> \u0434\u0430\u0436\u0435 \u0432 \u0440\u0443\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0441\u043b\u043e\u0436\u043d\u044b\u0445.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f.<\/strong><br \/> \u041a\u043e\u0433\u0434\u0430 \u043c\u043d\u0435 \u043d\u0430\u0434\u043e\u0435\u043b\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 SVG-\u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u043e\u0434 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0438\u0441\u0430\u043b Node.js-\u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043a\u043e\u0434\u0430 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>BootstrapSymbol<\/code> \u043e\u0444\u043e\u0440\u043c\u0438\u043b \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u043a\u0430\u043a npm-\u043f\u0430\u043a\u0435\u0442: <a href=\"https:\/\/www.npmjs.com\/package\/path-icons\/\" rel=\"noopener noreferrer nofollow\">path-icons<\/a>. \u041c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<\/blockquote>\n<h4>\u041a\u043b\u0430\u0441\u0441 BootstrapSymbolExtensions<\/h4>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>BootstrapSymbolExtensions<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c <code>BootstrapSymbol<\/code>. \u0415\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>SymbolPath<\/code> \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0443 <code>BootstrapIcon<\/code>.<\/p>\n<p>\u041a\u043b\u0430\u0441\u0441 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<ul>\n<li>\n<p><code>GetGeometryPath()<\/code>: \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 <code>PathData<\/code> \u0432\u0441\u0435\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 (\u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u0433\u043e <code>PathIcon<\/code>).<\/p>\n<\/li>\n<li>\n<p><code>GetGeometryDefinition()<\/code>: \u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u0440\u0442\u0435\u0436 <code>(string primaryPath, uint primaryArgb, string secondaryPath, uint secondaryArgb)<\/code>, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044f \u043b\u043e\u0433\u0438\u043a\u0443 \u0432\u044b\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u0438 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0435\u0439, \u043a\u0430\u043a \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0443 <code>BootstrapIcon<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u0438\u043a\u043e\u043d\u043e\u043a (\u0441\u0442\u0440\u043e\u043a\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0438 \u0446\u0432\u0435\u0442\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <code>string<\/code>, <code>uint<\/code>), \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 <code>GetGeometryDefinition<\/code>, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u043c\u0438. \u041a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0438\u0445 \u0432 \u0441\u0432\u043e\u0438 \u0442\u0438\u043f\u044b:<\/p>\n<ul>\n<li>\n<p><code>Avalonia.Media.Geometry<\/code>, <code>Avalonia.Media.Color<\/code> (\u0434\u043b\u044f Avalonia);<\/p>\n<\/li>\n<li>\n<p><code>System.Windows.Media.Geometry<\/code>, <code>System.Windows.Media.Color<\/code> (\u0434\u043b\u044f WPF).<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SharedLib \u043d\u0430 GitHub:<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/schavelev\/path-icons\/blob\/main\/examples\/AppIcons\/SharedLib\/Controls\/SymbolPathAttribute.cs\" rel=\"noopener noreferrer nofollow\">\u041a\u043b\u0430\u0441\u0441 SymbolPathAttribute.cs<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/schavelev\/path-icons\/blob\/main\/examples\/AppIcons\/SharedLib\/Controls\/BootstrapSymbol.cs\" rel=\"noopener noreferrer nofollow\">\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 BootstrapSymbol.cs<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/schavelev\/path-icons\/blob\/main\/examples\/AppIcons\/SharedLib\/Controls\/BootstrapSymbolExtensions.cs\" rel=\"noopener noreferrer nofollow\">\u041a\u043b\u0430\u0441\u0441 BootstrapSymbolExtensions.cs<\/a>.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0428\u0430\u0433 2 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d. \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <code>SharedLib<\/code> \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043a\u043e\u043d\u043e\u043a \u0432 \u0432\u0438\u0434\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>BootstrapSymbol<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0438\u043a\u043e\u043d\u043a\u0438 (\u0441\u0438\u043c\u0432\u043e\u043b\u0430). \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code> \u0434\u043b\u044f Avalonia.<\/p>\n<p><a class=\"anchor\" name=\"step3\" id=\"step3\"><\/a><\/p>\n<h2>\u0428\u0430\u0433 3: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f Avalonia<\/h2>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/yy\/j8\/uc\/yyj8ucwudhbgqpprxmltrdqvsxo.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 BootstrapIcon \u0434\u043b\u044f Avalonia\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/yy\/j8\/uc\/yyj8ucwudhbgqpprxmltrdqvsxo.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/yy\/j8\/uc\/yyj8ucwudhbgqpprxmltrdqvsxo.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 BootstrapIcon \u0434\u043b\u044f Avalonia<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 <code>TryAvalonia<\/code>. \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0435\u0433\u043e &#171;\u0441 \u043d\u0443\u043b\u044f&#187;, \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u0430\u043a \u043e\u0441\u043d\u043e\u0432\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>PathIcon<\/code>.<\/p>\n<p><strong>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0430<\/strong><\/p>\n<ul>\n<li>\n<p>\u0428\u0430\u0433 3.1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 PathIcon<\/p>\n<\/li>\n<li>\n<p>\u0428\u0430\u0433 3.2. \u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 BootstrapSymbol <\/p>\n<ul>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Symbol<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>\u0428\u0430\u0433 3.1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 PathIcon<\/h3>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0435\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e <code>PathIcon<\/code>. \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 <code>TryAvalonia<\/code> \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <code>Controls<\/code>, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u043d\u0435\u0435 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">dotnet new avalonia.templatedcontrol -n BootstrapIcon -p:n TryAvalonia.Controls <\/code><\/pre>\n<p>\u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>Controls<\/code> \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430 <code>BootstrapIcon.axaml<\/code> \u0438 <code>BootstrapIcon.axaml.cs<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>namespace TryAvalonia.Controls<\/code>.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 Rider, Visual Studio \u0438\u043b\u0438 VS Code, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b &#171;Avalonia Templated Control&#187;, \u0443\u043a\u0430\u0437\u0430\u0432 \u043f\u0430\u043f\u043a\u0443 <code>Controls<\/code> \u0438 \u0438\u043c\u044f <code>BootstrapIcon<\/code>. \u0417\u0430\u0442\u0435\u043c \u043d\u0430\u0434\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c <code>namespace<\/code> \u043d\u0430 <code>TryAvalonia.Controls<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0431\u0443\u0434\u0435\u0442 <code>TryAvalonia<\/code>).<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0442\u0435\u043c\u0443 <code>BootstrapIcon.axaml<\/code> \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0444\u0430\u0439\u043b <code>App.axaml<\/code> \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <code>TryAvalonia<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0444\u0430\u0439\u043b \u0442\u0435\u043c\u044b \u0432 \u0441\u0435\u043a\u0446\u0438\u044e <code>&lt;Application.Resources&gt;<\/code>:<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 App.xaml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;Application xmlns=\"https:\/\/github.com\/avaloniaui\"              xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"              x:Class=\"TryAvalonia.App\"              RequestedThemeVariant=\"Default\"&gt;   &lt;Application.Resources&gt;     &lt;ResourceDictionary&gt;       &lt;ResourceDictionary.MergedDictionaries&gt;         &lt;ResourceInclude Source=\"\/Controls\/BootstrapIcon.axaml\"\/&gt;       &lt;\/ResourceDictionary.MergedDictionaries&gt;     &lt;\/ResourceDictionary&gt;   &lt;\/Application.Resources&gt;    &lt;Application.Styles&gt;     &lt;FluentTheme \/&gt;   &lt;\/Application.Styles&gt; &lt;\/Application&gt; <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u0435 \u0444\u0430\u0439\u043b\u0430 <code>BootstrapIcon.axaml<\/code> (\u043d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 &#171;Templated Control&#187;).<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u0432 \u043f\u043e\u043b\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>PathIcon<\/code>, \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f Avalonia. \u042d\u0442\u043e \u0434\u0430\u0441\u0442 \u043d\u0430\u043c \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u043e\u0441\u043d\u043e\u0432\u0443 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a.<\/p>\n<p><strong>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e PathIcon (Avalonia):<\/strong><\/p>\n<ul>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>PathIcon<\/code>: <a href=\"https:\/\/github.com\/AvaloniaUI\/Avalonia\/blob\/release\/11.3.0\/src\/Avalonia.Controls\/PathIcon.cs\" rel=\"noopener noreferrer nofollow\">src\/Avalonia.Controls\/PathIcon.cs<\/a><\/p>\n<\/li>\n<li>\n<p>\u0422\u0435\u043c\u0430 \u0434\u043b\u044f <code>PathIcon<\/code> (Fluent Theme): <a href=\"https:\/\/github.com\/AvaloniaUI\/Avalonia\/blob\/release\/11.3.0\/src\/Avalonia.Themes.Fluent\/Controls\/PathIcon.xaml\" rel=\"noopener noreferrer nofollow\">src\/Avalonia.Themes.Fluent\/Controls\/PathIcon.xaml<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043a\u043e\u0434\u0430 \u0438\u0437 <code>PathIcon<\/code> \u043f\u043e\u043b\u0443\u0447\u0438\u043c <code>BootstrapIcon.axaml.cs<\/code> \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e:<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 BootstrapIcon.axaml.cs<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">using Avalonia; using Avalonia.Controls; using Avalonia.Media;  namespace TryAvalonia.Controls;  public class BootstrapIcon : IconElement {     static BootstrapIcon()     {         AffectsRender&lt;BootstrapIcon&gt;(DataProperty);     }      public static readonly StyledProperty&lt;Geometry?&gt; DataProperty =         AvaloniaProperty.Register&lt;BootstrapIcon, Geometry?&gt;(nameof(Data));     public Geometry? Data     {         get =&gt; GetValue(DataProperty);         set =&gt; SetValue(DataProperty, value);     } }  <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043a\u043e\u0434\u0430 \u0438\u0437 <code>PathIcon<\/code> \u043f\u043e\u043b\u0443\u0447\u0438\u043c <code>BootstrapIcon.axaml<\/code> \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>xmlns:ui=\"using:TryAvalonia\"<\/code> \u0438 \u0437\u0430\u043c\u0435\u043d\u044b \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435:<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 BootstrapIcon.axaml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;ResourceDictionary xmlns=\"https:\/\/github.com\/avaloniaui\"         xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"         xmlns:ui=\"using:TryAvalonia.Controls\"&gt;    &lt;Design.PreviewWith&gt;     &lt;StackPanel Width=\"32\" Spacing=\"10\"&gt;       &lt;StackPanel.Resources&gt;         &lt;StreamGeometry x:Key=\"test_geometry\"&gt;M3,3 8,6 13,3 10,8 13,13 8,10 3,13 6,8z&lt;\/StreamGeometry&gt;       &lt;\/StackPanel.Resources&gt;             &lt;StackPanel Background=\"{DynamicResource SystemRegionBrush}\"&gt;         &lt;ui:BootstrapIcon Data=\"{StaticResource test_geometry}\" \/&gt;       &lt;\/StackPanel&gt;     &lt;\/StackPanel&gt;   &lt;\/Design.PreviewWith&gt;     &lt;ControlTheme x:Key=\"{x:Type ui:BootstrapIcon}\" TargetType=\"ui:BootstrapIcon\"&gt;     &lt;Setter Property=\"Foreground\" Value=\"{DynamicResource TextControlForeground}\" \/&gt;     &lt;Setter Property=\"Background\" Value=\"Transparent\" \/&gt;     &lt;Setter Property=\"Height\" Value=\"{DynamicResource IconElementThemeHeight}\" \/&gt;     &lt;Setter Property=\"Width\" Value=\"{DynamicResource IconElementThemeWidth}\" \/&gt;     &lt;Setter Property=\"Template\"&gt;       &lt;ControlTemplate&gt;         &lt;Border Background=\"{TemplateBinding Background}\"&gt;           &lt;Viewbox Height=\"{TemplateBinding Height}\" Width=\"{TemplateBinding Width}\"&gt;             &lt;Path Fill=\"{TemplateBinding Foreground}\" Data=\"{TemplateBinding Data}\" Stretch=\"Uniform\" \/&gt;           &lt;\/Viewbox&gt;         &lt;\/Border&gt;       &lt;\/ControlTemplate&gt;     &lt;\/Setter&gt;   &lt;\/ControlTheme&gt; &lt;\/ResourceDictionary&gt; <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u043f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u043a\u043e\u043f\u0438\u0435\u0439 <code>PathIcon<\/code>. \u0421\u043d\u043e\u0432\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e, \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Data<\/code>.<\/p>\n<h3>\u0428\u0430\u0433 3.2. \u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 BootstrapSymbol<\/h3>\n<p>\u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (<code>PathIcon<\/code>-\u043a\u043e\u043f\u0438\u0438) \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u0434\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Data<\/code> (\u0442\u0438\u043f\u0430 <code>Geometry<\/code>), \u0430 \u0446\u0432\u0435\u0442 \u2014 \u0447\u0435\u0440\u0435\u0437 \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0439 <code>Foreground<\/code> (\u0442\u0438\u043f\u0430 <code>Brush<\/code>). \u041d\u0430\u0448 <code>BootstrapIcon<\/code> \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u0443\u044e \u0438\u043a\u043e\u043d\u043a\u0443, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Symbol<\/code> (\u0442\u0438\u043f\u0430 <code>BootstrapSymbol<\/code> \u0438\u0437 <code>SharedLib<\/code>). \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>BootstrapSymbol<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0438 \u0446\u0432\u0435\u0442\u0430 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041e\u0431\u044a\u0435\u043c \u043a\u043e\u0434\u0430 <code>BootstrapIcon<\/code> \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u0441\u044f, \u043d\u043e \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u043c\u044b \u0435\u0451 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ol>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>Symbol<\/code> \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0445 \u043e\u0442 \u043d\u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0438 \u0446\u0432\u0435\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430 (<code>BootstrapIcon.axaml<\/code>) \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 (\u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>Data<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445: \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f <code>Symbol<\/code>, \u043f\u0430\u0440\u0441\u0438\u043d\u0433, \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>Symbol<\/code>: \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f).<\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u043e \u0448\u0430\u0433\u0430\u043c \u043e\u043f\u0438\u0448\u0435\u043c \u044d\u0442\u0443 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<h4>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432<\/h4>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0444\u0430\u0439\u043b <code>BootstrapIcon.axaml.cs<\/code>: \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Symbol<\/code> \u0438 \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0445 \u043e\u0442 \u043d\u0435\u0433\u043e (\u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438). \u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Data<\/code> \u043f\u043e\u043a\u0430 \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u0435\u043c (\u0438\u043d\u0430\u0447\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0434\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430 <code>BootstrapIcon.axaml<\/code>). \u0412 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0443 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>AffectsRender&lt;BootstrapIcon&gt;()<\/code>:<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 BootstrapIcon.axaml.cs (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">using Avalonia; using Avalonia.Controls; using Avalonia.Media; using SharedLib.Controls;  namespace TryAvalonia.Controls;  public class BootstrapIcon : IconElement { \u00a0 \u00a0 static BootstrapIcon() \u00a0 \u00a0 { \u00a0 \u00a0 \u00a0 \u00a0 AffectsRender&lt;BootstrapIcon&gt;(SymbolProperty); \u00a0 \u00a0 } \u00a0 \u00a0 \/\/... \u00a0 \u00a0 #region \/\/ Properties \u00a0 \u00a0 public static readonly StyledProperty&lt;BootstrapSymbol&gt; SymbolProperty = \u00a0 \u00a0 \u00a0 \u00a0 AvaloniaProperty.Register&lt;BootstrapIcon, BootstrapSymbol&gt;(nameof(Symbol), BootstrapSymbol.None); \u00a0 \u00a0 public BootstrapSymbol Symbol \u00a0 \u00a0 { \u00a0 \u00a0 \u00a0 \u00a0 get =&gt; GetValue(SymbolProperty); \u00a0 \u00a0 \u00a0 \u00a0 set =&gt; SetValue(SymbolProperty, value); \u00a0 \u00a0 }  \u00a0 \u00a0 \/\/ \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u00a0 \u00a0 internal static readonly StyledProperty&lt;Geometry?&gt; PrimaryGeometryProperty = \u00a0 \u00a0 \u00a0 \u00a0 AvaloniaProperty.Register&lt;BootstrapIcon, Geometry?&gt;(nameof(PrimaryGeometry)); \u00a0 \u00a0 internal Geometry? PrimaryGeometry { get =&gt; GetValue(PrimaryGeometryProperty); set =&gt; SetValue(PrimaryGeometryProperty, value); }  \u00a0 \u00a0 internal static readonly StyledProperty&lt;IBrush?&gt; PrimaryForegroundProperty = \u00a0 \u00a0 \u00a0 \u00a0 AvaloniaProperty.Register&lt;BootstrapIcon, IBrush?&gt;(nameof(PrimaryForeground)); \u00a0 \u00a0 internal IBrush? PrimaryForeground { get =&gt; GetValue(PrimaryForegroundProperty); set =&gt; SetValue(PrimaryForegroundProperty, value); }  \u00a0 \u00a0 internal static readonly StyledProperty&lt;Geometry?&gt; SecondaryGeometryProperty = \u00a0 \u00a0 \u00a0 \u00a0 AvaloniaProperty.Register&lt;BootstrapIcon, Geometry?&gt;(nameof(SecondaryGeometry)); \u00a0 \u00a0 internal Geometry? SecondaryGeometry { get =&gt; GetValue(SecondaryGeometryProperty); set =&gt; SetValue(SecondaryGeometryProperty, value); }  \u00a0 \u00a0 internal static readonly StyledProperty&lt;IBrush?&gt; SecondaryForegroundProperty = \u00a0 \u00a0 \u00a0 \u00a0 AvaloniaProperty.Register&lt;BootstrapIcon, IBrush?&gt;(nameof(SecondaryForeground)); \u00a0 \u00a0 internal IBrush? SecondaryForeground { get =&gt; GetValue(SecondaryForegroundProperty); set =&gt; SetValue(SecondaryForegroundProperty, value); } \u00a0 \u00a0 #endregion \u00a0 \u00a0 \/\/ ... } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043b\u0430\u0441\u0441 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u043e \u0435\u0449\u0435 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <code>Symbol<\/code>.<\/p>\n<h4>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430<\/h4>\n<p>\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0432 <code>BootstrapIcon.axaml<\/code>, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043d\u043e\u0432\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>Path<\/code>.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043c\u0435\u043d\u0438\u043c <code>&lt;Design.PreviewWith&gt;<\/code>, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b XAML-\u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0432 \u0434\u0438\u0437\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c\u0435. \u041c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c <code>PrimaryGeometry<\/code> \u0438 <code>PrimaryForeground<\/code> \u0434\u043b\u044f \u0446\u0435\u043b\u0435\u0439 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<pre><code class=\"xml\">&lt;Design.PreviewWith&gt;   &lt;StackPanel Margin=\"4\" Spacing=\"8\" Orientation=\"Horizontal\"&gt;      &lt;ui:BootstrapIcon PrimaryGeometry=\"M3,3 8,6 13,3 10,8 13,13 8,10 3,13 6,8z\"                        PrimaryForeground=\"BlueViolet\"\/&gt;      &lt;ui:BootstrapIcon Symbol=\"Bootstrap\"\/&gt;      &lt;ui:BootstrapIcon Symbol=\"PathIcons\" \/&gt;      &lt;ui:BootstrapIcon Symbol=\"Custom1\" Width=\"32\" Height=\"32\" \/&gt;      &lt;ui:BootstrapIcon Symbol=\"Custom2\" Width=\"32\" Height=\"32\" \/&gt;   &lt;\/StackPanel&gt; &lt;\/Design.PreviewWith&gt; <\/code><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 <code>BootstrapIcon.axaml<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>BootstrapIconSize<\/code> (\u044d\u0442\u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0435\u0442\u0442\u0435\u0440\u0430\u0445 <code>&lt;ControlTheme&gt;<\/code> \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430). \u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>BootstrapIconSize<\/code> \u0437\u0430\u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 <code>BootstrapIcon<\/code> \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n<pre><code class=\"xml\">  &lt;x:Double x:Key=\"BootstrapIconSize\"&gt;20&lt;\/x:Double&gt; <\/code><\/pre>\n<p><code>BootstrapIconSize<\/code> &#8212; \u044d\u0442\u043e \u0437\u0430\u043c\u0435\u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 <code>IconElementThemeWidth<\/code> \u0438 <code>IconElementThemeHeight<\/code> \u0438\u0437 \u043e\u0431\u0449\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 Avalonia, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043b\u044f <code>PathIcon<\/code>.<\/p>\n<p>\u0418\u0437\u043c\u0435\u043d\u0438\u043c \u0431\u043b\u043e\u043a \u0441\u0435\u0442\u0442\u0435\u0440\u043e\u0432 \u0432 <code>&lt;ControlTheme&gt;<\/code> \u0434\u043b\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 <code>BootstrapIcon<\/code>: \u0441\u0435\u0442\u0442\u0435\u0440 <code>Foreground<\/code> \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u043d\u0430 \u0434\u0432\u0430 \u0441\u0435\u0442\u0442\u0435\u0440\u0430 <code>PrimaryForeground<\/code> \u0438 <code>SecondaryForeground<\/code>, \u0430 \u0432\u043c\u0435\u0441\u0442\u043e <code>{DynamicResource IconElementThemeWidth}<\/code> \u0438 <code>{DynamicResource IconElementThemeHeight}<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <code>{DynamicResource BootstrapIconSize}<\/code>:<\/p>\n<pre><code class=\"xml\">&lt;ControlTheme x:Key=\"{x:Type ui:BootstrapIcon}\" TargetType=\"ui:BootstrapIcon\"&gt;   &lt;Setter Property=\"PrimaryForeground\" Value=\"{DynamicResource TextControlForeground}\" \/&gt;   &lt;Setter Property=\"SecondaryForeground\" Value=\"{DynamicResource TextControlForeground}\" \/&gt;   &lt;Setter Property=\"Background\" Value=\"Transparent\" \/&gt;   &lt;Setter Property=\"Height\" Value=\"{DynamicResource BootstrapIconSize}\" \/&gt;   &lt;Setter Property=\"Width\" Value=\"{DynamicResource BootstrapIconSize}\" \/&gt;   ... &lt;\/ControlTheme&gt; <\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>{DynamicResource TextControlForeground}<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f (<code>PrimaryForeground<\/code>, <code>SecondaryForeground<\/code>) \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043e\u0432 (\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 <code>BootstrapIcon<\/code> \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e <code>PathIcon<\/code>).<\/p>\n<p>\u0417\u0430\u043c\u0435\u043d\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 <code>&lt;ControlTemplate&gt;<\/code>:<\/p>\n<pre><code class=\"xml\">&lt;ControlTheme x:Key=\"{x:Type ui:BootstrapIcon}\" TargetType=\"ui:BootstrapIcon\"&gt;   ...   &lt;Setter Property=\"Template\"&gt;     &lt;ControlTemplate&gt;       &lt;Border Background=\"{TemplateBinding Background}\"&gt;         &lt;Viewbox Stretch=\"Uniform\"&gt;           &lt;Panel&gt;             &lt;Path Width=\"16\" Height=\"16\" Stretch=\"None\"                   Fill=\"{TemplateBinding PrimaryForeground}\"                   Data=\"{TemplateBinding PrimaryGeometry}\" \/&gt;             &lt;Path Width=\"16\" Height=\"16\" Stretch=\"None\"                   Fill=\"{TemplateBinding SecondaryForeground}\"                   Data=\"{TemplateBinding SecondaryGeometry}\"\/&gt;           &lt;\/Panel&gt;         &lt;\/Viewbox&gt;       &lt;\/Border&gt;     &lt;\/ControlTemplate&gt;   &lt;\/Setter&gt;   ... &lt;\/ControlTheme&gt; <\/code><\/pre>\n<p>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 <code>&lt;Viewbox&gt;<\/code> \u043c\u044b \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0438 \u0432\u043e &#171;\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0438&#187; \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 <code>BootstrapIcon<\/code>.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0449\u0451 \u0432 <code>&lt;ControlTheme&gt;<\/code> \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0438\u043b\u044f \u0434\u043b\u044f <code>:disabled<\/code>, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043e\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 (\u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c <code>Opacity<\/code>).<\/p>\n<pre><code class=\"xml\">&lt;ControlTheme x:Key=\"{x:Type ui:BootstrapIcon}\" TargetType=\"ui:BootstrapIcon\"&gt;     ...     &lt;!-- Style to reduce opacity of the icon's panel when the control is disabled. --&gt;     &lt;Style Selector=\"^:disabled \/template\/ Panel\"&gt;       &lt;Setter Property=\"Opacity\" Value=\"0.3\" \/&gt;     &lt;\/Style&gt; &lt;\/ControlTheme&gt; <\/code><\/pre>\n<p>\u0412 \u043a\u043b\u0430\u0441\u0441\u0435 <code>BootstrapIcon.axaml.cs<\/code> \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>DataProperty<\/code> \u0438 \u0435\u0433\u043e \u043e\u0431\u0435\u0440\u0442\u043a\u0443 <code>Data<\/code>, \u0442.\u043a. \u0448\u0430\u0431\u043b\u043e\u043d \u0443\u0436\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0433\u043e\u0442\u043e\u0432 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438 \u0438\u043a\u043e\u043d\u043a\u0438, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0430. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>BootstrapIcon.axaml<\/code> \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<h4>\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p>\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043f\u0440\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f <code>GetGeometryDefinition()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e <code>Symbol<\/code> (\u0438\u043c\u0435\u044e\u0449\u0435\u043c\u0443 \u0442\u0438\u043f <code>BootstrapSymbol<\/code>) \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043a\u043e\u0440\u0442\u0435\u0436 <code>(string primaryPath, uint primaryArgb, string secondaryPath, uint secondaryArgb)<\/code>. \u041d\u0430\u043c \u043d\u0430\u0434\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044e \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f (\u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f (\u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430).<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043b\u0430\u0441\u0441 <code>BootstrapIcon<\/code> \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 <code>SymbolParsed<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 UI-\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 <code>Geometry<\/code> \u0438 <code>Brush<\/code>. \u0418\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 <code>Symbol<\/code> \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u044d\u0448, \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 BootstrapIcon.axaml.cs (\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 SymbolParsed)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">public class BootstrapIcon : IconElement {     \/\/ ...     private readonly struct SymbolParsed(Geometry? primaryGeo, Brush? primaryBrush, Geometry? secondaryGeo, Brush? secondaryBrush)     {         public Geometry? PrimaryGeometry { get; } = primaryGeo;         public Brush? PrimaryForeground { get; } = primaryBrush;         public Geometry? SecondaryGeometry { get; } = secondaryGeo;         public Brush? SecondaryForeground { get; } = secondaryBrush;          \/\/ An empty SymbolParsed instance for error cases.         public static SymbolParsed Empty =&gt; new(null, null, null, null);     } } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412 \u043a\u043b\u0430\u0441\u0441 <code>BootstrapIcon<\/code> \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0430\u0440\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438: <code>uint<\/code> \u0432 <code>Brush<\/code> \u0438 <code>BootstrapSymbol<\/code> \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 <code>SymbolParsed<\/code>.<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 BootstrapIcon.axaml.cs (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">public class BootstrapIcon : IconElement {     \/\/ ...     \/\/ Converts an ARGB uint value into a SolidColorBrush, or null if the value is 0.     private static SolidColorBrush? CreateBrushFromArgb(uint ardb)         =&gt; ardb == 0 ? null : new SolidColorBrush(ardb);      \/\/ Converts a BootstrapSymbol into parsed geometry and brush data for rendering.     private static SymbolParsed CreateSymbolParsed(BootstrapSymbol symb)     {         try         {             var (primaryPath, primaryArgb, secondaryPath, secondaryArgb) = symb.GetGeometryDefinition();             Geometry? primaryGeo = Geometry.Parse(primaryPath ?? \"\");             Brush? primaryBrush = CreateBrushFromArgb(primaryArgb);             Geometry? secondaryGeo = Geometry.Parse(secondaryPath ?? \"\");             Brush? secondaryBrush = CreateBrushFromArgb(secondaryArgb);              \/\/ Return parsed data as a SymbolParsed struct.             return new SymbolParsed(primaryGeo, primaryBrush, secondaryGeo, secondaryBrush);         }         catch         {             \/\/ Return empty data if parsing fails.             return SymbolParsed.Empty;         }     }     \/\/... } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0441 <code>BootstrapIcon<\/code> \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>SymbolParsed<\/code> \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>PrimaryGeometry<\/code>, <code>PrimaryForeground<\/code>, <code>SecondaryGeometry<\/code>, <code>SecondaryForeground<\/code>.<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 BootstrapIcon.axaml.cs (\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">public class BootstrapIcon : IconElement {     \/\/...     private void ApplySymbolData(SymbolParsed data)     {         PrimaryGeometry = data.PrimaryGeometry;         SecondaryGeometry = data.SecondaryGeometry;          if (data.PrimaryForeground != null)         {             PrimaryForeground = data.PrimaryForeground;         }         else         {             ClearValue(PrimaryForegroundProperty);         }         if (data.SecondaryForeground != null)         {             SecondaryForeground = data.SecondaryForeground;         }         else         {             ClearValue(SecondaryForegroundProperty);         }     }     \/\/... } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>ClearValue()<\/code> \u0434\u043b\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430. \u0415\u0441\u043b\u0438 \u0446\u0432\u0435\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435 <code>SymbolPath<\/code> \u043d\u0435 \u0431\u044b\u043b \u0443\u043a\u0430\u0437\u0430\u043d \u0446\u0432\u0435\u0442, \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d \u0446\u0432\u0435\u0442 \u0441 ARGB=0), \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044f <code>null<\/code> \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>PrimaryForeground<\/code> \u0438 <code>SecondaryForeground<\/code> \u043c\u044b \u0438\u0445 \u043e\u0447\u0438\u0449\u0430\u0435\u043c (\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438). \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, Avalonia \u043f\u0440\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043e\u0432 (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>{DynamicResource TextControlForeground}<\/code>).<\/p>\n<h4>\u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u0438\u0441\u0442\u0435\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>Symbol<\/code>, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043b\u0430\u0441\u0441 <code>BootstrapIcon<\/code> \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043b\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u044d\u0448\u0430:<\/p>\n<pre><code class=\"cs\">private static readonly Dictionary&lt;BootstrapSymbol, SymbolParsed&gt; _symbolDataCache = []; <\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c <code>_symbolDataCache<\/code> \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 <code>SymbolParsed<\/code> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>BootstrapSymbol<\/code>, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c <code>Geometry<\/code> \u0438 <code>Brush<\/code>. \u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u043a\u044d\u0448\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>_symbolDataCache.TryGetValue()<\/code>.<\/p>\n<h4>\u041b\u043e\u0433\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Symbol<\/h4>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043a\u043b\u0430\u0441\u0441\u0430 <code>BootstrapIcon.axaml.cs<\/code>: \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>Symbol<\/code>, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 <code>SharedLib<\/code> (\u0447\u0435\u0440\u0435\u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u044d\u0448), \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0445 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 Avalonia \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443 \u043d\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f <code>SymbolProperty<\/code> \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439\u0442\u0435 \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u043a\u044d\u0448\u0430) \u0438 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>OnSymbolChanged()<\/code>:<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 BootstrapIcon.axaml.cs (\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">public class BootstrapIcon : IconElement {     \/\/ A cache to store parsed symbol data for each BootstrapSymbol to improve performance.     private static readonly Dictionary&lt;BootstrapSymbol, SymbolParsed&gt; _symbolDataCache = [];      \/\/ Static constructor to set up property change handling for the Symbol property.     static BootstrapIcon()     {         AffectsRender&lt;BootstrapIcon&gt;(SymbolProperty);         SymbolProperty.Changed.AddClassHandler&lt;BootstrapIcon&gt;(OnSymbolChanged);     }      \/\/ Handles changes to the Symbol property, updating the control's geometries and colors.     private static void OnSymbolChanged(BootstrapIcon icon, AvaloniaPropertyChangedEventArgs e)     {         var symb = e.GetNewValue&lt;BootstrapSymbol&gt;();         if (!_symbolDataCache.TryGetValue(symb, out var pathData))         {             \/\/ Parse and cache new symbol data             pathData = CreateSymbolParsed(symb);             _symbolDataCache.Add(symb, pathData);         }         icon.ApplySymbolData(pathData);     }     \/\/... } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0432\u0430\u0448 \u043a\u043b\u0430\u0441\u0441 <code>BootstrapIcon.axaml.cs<\/code> \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u0438\u0437 <code>SharedLib<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0442\u0435\u043c \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c.<\/p>\n<p><strong>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043f\u043e\u043b\u043d\u044b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 BootstrapIcon \u0434\u043b\u044f Avalonia:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u0434 \u043a\u043b\u0430\u0441\u0441\u0430: <a href=\"https:\/\/github.com\/schavelev\/path-icons\/blob\/main\/examples\/AppIcons\/TryAvalonia\/Controls\/BootstrapIcon.axaml.cs\" rel=\"noopener noreferrer nofollow\">AppIcons\/TryAvalonia\/Controls\/BootstrapIcon.axaml.cs<\/a><\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0434 \u0442\u0435\u043c\u044b: <a href=\"https:\/\/github.com\/schavelev\/path-icons\/blob\/main\/examples\/AppIcons\/TryAvalonia\/Controls\/BootstrapIcon.axaml\" rel=\"noopener noreferrer nofollow\">AppIcons\/TryAvalonia\/Controls\/BootstrapIcon.axaml<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0428\u0430\u0433 3 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d. \u041c\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u0434\u043b\u044f Avalonia. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0428\u0430\u0433 4).<\/p>\n<p><a class=\"anchor\" name=\"step4\" id=\"step4\"><\/a><\/p>\n<h2>\u0428\u0430\u0433 4: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f Avalonia<\/h2>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u043c\u044b \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code> \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043d\u0430\u0448\u0435\u0433\u043e Avalonia \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (<code>TryAvalonia<\/code>). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043e\u043a\u043d\u0430 <code>MainWindow.axaml<\/code>, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u0442\u0443\u043b\u0431\u0430\u0440 \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u043c\u0438 \u043d\u0430\u0448\u0438 \u0446\u0432\u0435\u0442\u043d\u044b\u0435 \u0438\u043a\u043e\u043d\u043a\u0438.<\/p>\n<p>\u041d\u0430\u0447\u043d\u0435\u043c \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u043a\u043d\u0430 Avalonia. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d <code>xmlns:ui=\"using:TryAvalonia.Controls\"<\/code>. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 <code>&lt;DockPanel&gt;<\/code> \u0441 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043e\u043a <code>&lt;StackPanel Classes=\"toolbar\"&gt;<\/code> \u0438 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e <code>&lt;TextBlock&gt;<\/code>:<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 MainWindow.axaml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;Window xmlns=\"https:\/\/github.com\/avaloniaui\"         xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"         xmlns:d=\"http:\/\/schemas.microsoft.com\/expression\/blend\/2008\"         xmlns:mc=\"http:\/\/schemas.openxmlformats.org\/markup-compatibility\/2006\"         xmlns:ui=\"using:TryAvalonia.Controls\"         Width=\"650\" Height=\"150\"         mc:Ignorable=\"d\" x:Class=\"TryAvalonia.MainWindow\" Title=\"TryAvalonia\"&gt;   &lt;DockPanel&gt;     &lt;StackPanel DockPanel.Dock=\"Top\" Classes=\"toolbar\" Orientation=\"Horizontal\"&gt;       &lt;!-- \u043c\u0435\u0441\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043e\u043a--&gt;     &lt;\/StackPanel&gt;     &lt;TextBlock Text=\"Welcome to Avalonia!\" VerticalAlignment=\"Center\" HorizontalAlignment=\"Center\"\/&gt;   &lt;\/DockPanel&gt; &lt;\/Window&gt; <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 <code>&lt;StackPanel&gt;<\/code> \u0441 <code>DockPanel.Dock=\"Top\"<\/code> \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 <code>&lt;ui:BootstrapIcon&gt;<\/code> \u0438 <code>&lt;TextBlock&gt;<\/code>. \u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u043a\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438:<\/p>\n<pre><code class=\"xml\">&lt;Button&gt;     &lt;StackPanel&gt;         &lt;ui:BootstrapIcon Symbol=\"SortAlphaDown\" \/&gt;         &lt;TextBlock Text=\"Sort\" \/&gt;     &lt;\/StackPanel&gt; &lt;\/Button&gt; <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>&lt;ui:BootstrapIcon&gt;<\/code> \u0438 \u0437\u0430\u0434\u0430\u0435\u043c \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Symbol<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>BootstrapSymbol<\/code> (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>\"SortAlphaDown\"<\/code>). \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043b\u043e\u0433\u0438\u043a\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430, \u043e\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0438 \u0446\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438 \u0438\u0437 <code>SharedLib<\/code> \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442 \u0435\u0435.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u044b <code>ui:BootstrapIcon<\/code> \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 24&#215;24), \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>BootstrapIconSize<\/code> \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445 \u043e\u043a\u043d\u0430:<\/p>\n<pre><code class=\"xml\">&lt;Window.Resources&gt;     &lt;x:Double x:Key=\"BootstrapIconSize\"&gt;24&lt;\/x:Double&gt; &lt;\/Window.Resources&gt; <\/code><\/pre>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u0434\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0430\u043c \u0432\u0438\u0434\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u0441\u0435\u0445  \u0435\u0434\u0438\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c \u043f\u0440\u044f\u043c\u043e \u0432 \u043e\u043a\u043d\u0435:<\/p>\n<pre><code class=\"xml\">&lt;Window.Styles&gt;   &lt;Style Selector=\"StackPanel.toolbar\"&gt;     &lt;Setter Property=\"Background\" Value=\"#EEF5FD\"\/&gt;   &lt;\/Style&gt;   &lt;Style Selector=\"StackPanel.toolbar Button\"&gt;     &lt;Setter Property=\"Background\" Value=\"Transparent\"\/&gt;     &lt;Setter Property=\"MinWidth\" Value=\"60\"\/&gt;   &lt;\/Style&gt;   &lt;Style Selector=\"StackPanel.toolbar Button TextBlock\"&gt;     &lt;Setter Property=\"HorizontalAlignment\" Value=\"Center\"\/&gt;     &lt;Setter Property=\"FontSize\" Value=\"12\"\/&gt;   &lt;\/Style&gt; &lt;\/Window.Styles&gt; <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u0441\u043e\u0431\u0440\u0430\u0432 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0447\u0430\u0441\u0442\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043d\u043e\u043f\u043e\u043a \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0432\u044b\u0448\u0435 \u0432 \u0432\u0435\u0440\u0445\u043d\u0438\u0439 <code>StackPanel<\/code>, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 \u0442\u0443\u043b\u0431\u0430\u0440 \u0441 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0446\u0432\u0435\u0442\u043d\u044b\u043c\u0438 \u0438\u043a\u043e\u043d\u043a\u0430\u043c\u0438 <code>BootstrapIcon<\/code>.<\/p>\n<p><a href=\"https:\/\/github.com\/schavelev\/path-icons\/blob\/main\/examples\/AppIcons\/TryAvalonia\/MainWindow.axaml\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 AppIcons\/TryAvalonia\/MainWindow.axaml \u043d\u0430 GitHub<\/a>.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442 <code>TryAvalonia<\/code>, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0428\u0430\u0433 4 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d. \u041c\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u0432 Avalonia \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.<\/p>\n<p><a class=\"anchor\" name=\"step5\" id=\"step5\"><\/a><\/p>\n<h2>\u0428\u0430\u0433 5: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f WPF<\/h2>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/v5\/kl\/qd\/v5klqdqo2hxuvs8vj4extspas-8.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 BootstrapIcon \u0434\u043b\u044f WPF\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/v5\/kl\/qd\/v5klqdqo2hxuvs8vj4extspas-8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/v5\/kl\/qd\/v5klqdqo2hxuvs8vj4extspas-8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 BootstrapIcon \u0434\u043b\u044f WPF<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u0434\u043b\u044f WPF-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 <code>TryWpf<\/code>.<\/p>\n<p><strong>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0430<\/strong><\/p>\n<ul>\n<li>\n<p>\u0428\u0430\u0433 5.1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u043b\u044f BootstrapIcon<\/p>\n<\/li>\n<li>\n<p>\u0428\u0430\u0433 5.2. \u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 BootstrapIcon \u0434\u043b\u044f WPF<\/p>\n<\/li>\n<li>\n<p>\u0428\u0430\u0433 5.3. \u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u0442\u0435\u043c\u044b BootstrapIcon \u0434\u043b\u044f WPF<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c <code>BootstrapIcon<\/code> \u0434\u043b\u044f WPF \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e &#171;\u0441 \u043d\u0443\u043b\u044f&#187; \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 <code>BootstrapIcon<\/code> \u0434\u043b\u044f Avalonia \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043e\u0432 \u0434\u043b\u044f WPF. \u041a\u0430\u043a \u0438 \u0432 Avalonia-\u0432\u0435\u0440\u0441\u0438\u0438, \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043a\u043e\u043d\u043e\u043a \u0438\u0437 \u043a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <code>SharedLib<\/code>.<\/p>\n<h3>\u0428\u0430\u0433 5.1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u043b\u044f BootstrapIcon<\/h3>\n<p>\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 Avalonia, WPF \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0447\u0435\u0440\u0435\u0437 <code>dotnet CLI<\/code> \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0441 \u0442\u0435\u043c\u043e\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0430 <code>PathIcon<\/code>.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 <code>TryWpf<\/code> \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 <code>Controls<\/code> \u0438 \u0432 \u043d\u0435\u0439 \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430: <code>BootstrapIcon.cs<\/code> \u0438 <code>BootstrapIcon.xaml<\/code>.<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 BootstrapIcon.cs<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">using System.Windows.Controls;  namespace TryWpf.Controls; public class BootstrapIcon : Control {     DefaultStyleKeyProperty.OverrideMetadata(typeof(BootstrapIcon), new FrameworkPropertyMetadata(typeof(BootstrapIcon))); } <\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 BootstrapIcon.xaml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;ResourceDictionary     xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"     xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"     xmlns:ui=\"clr-namespace:TryWpf.Controls\"&gt;      &lt;Style TargetType=\"{x:Type ui:BootstrapIcon}\"&gt;         &lt;Setter Property=\"Template\"&gt;             &lt;Setter.Value&gt;                 &lt;ControlTemplate TargetType=\"{x:Type ui:BootstrapIcon}\"&gt;                     &lt;TextBlock Text=\"BootstrapIcon WPF Placeholder\" \/&gt;                 &lt;\/ControlTemplate&gt;             &lt;\/Setter.Value&gt;         &lt;\/Setter&gt;     &lt;\/Style&gt; &lt;\/ResourceDictionary&gt; <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0442\u0438\u043b\u044c \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 <code>BootstrapIcon.xaml<\/code>, \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0444\u0430\u0439\u043b <code>App.xaml<\/code> \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <code>TryWpf<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0444\u0430\u0439\u043b \u0432 \u0441\u0435\u043a\u0446\u0438\u044e <code>&lt;Application.Resources&gt;<\/code>:<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 App.xaml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;Application x:Class=\"TryWpf.App\"              xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"              xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"              xmlns:local=\"clr-namespace:TryWpf\"              StartupUri=\"MainWindow.xaml\"&gt;     &lt;Application.Resources&gt;         &lt;ResourceDictionary&gt;             &lt;ResourceDictionary.MergedDictionaries&gt;                 &lt;ResourceDictionary Source=\"\/TryWpf;component\/Controls\/BootstrapIcon.xaml\" \/&gt;             &lt;\/ResourceDictionary.MergedDictionaries&gt;         &lt;\/ResourceDictionary&gt;     &lt;\/Application.Resources&gt; &lt;\/Application&gt; <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a. \u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0439 WPF \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c \u0441\u0442\u0438\u043b\u0435\u043c \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c-\u0437\u0430\u0433\u043b\u0443\u0448\u043a\u043e\u0439.<\/p>\n<h3>\u0428\u0430\u0433 5.2. \u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 BootstrapIcon \u0434\u043b\u044f WPF<\/h3>\n<p>\u041f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c \u043b\u043e\u0433\u0438\u043a\u0443 \u043a\u043b\u0430\u0441\u0441\u0430 <code>BootstrapIcon.axaml.cs<\/code> (\u0438\u0437 \u0428\u0430\u0433\u0430 3) \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 WPF. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <code>BootstrapIcon.cs<\/code> \u0434\u043b\u044f WPF \u0431\u0443\u0434\u0443\u0442 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445:<\/p>\n<ul>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442 <code>System.Windows.Controls.Control<\/code> (\u0432\u043c\u0435\u0441\u0442\u043e <code>IconElement<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>System.Windows.DependencyProperty<\/code> (\u0432\u043c\u0435\u0441\u0442\u043e <code>StyledProperty<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443.<\/p>\n<\/li>\n<\/ul>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 <code>SharedLib<\/code> \u0447\u0435\u0440\u0435\u0437 <code>GetGeometryDefinition()<\/code> \u0438 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430 Avalonia-\u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<h3>\u0428\u0430\u0433 5.3. \u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u0442\u0435\u043c\u044b BootstrapIcon \u0434\u043b\u044f WPF<\/h3>\n<p>\u0410\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c XAML-\u0442\u0435\u043c\u0443 <code>BootstrapIcon.axaml<\/code> (\u0438\u0437 \u0428\u0430\u0433\u0430 3) \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 WPF. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 <code>BootstrapIcon.xaml<\/code>:<\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>&lt;Style&gt;<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>&lt;ControlTheme&gt;<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>&lt;Grid&gt;<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>&lt;Panel&gt;<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>&lt;ControlTemplate.Triggers&gt;<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>&lt;Style Selector=\"...\"&gt;<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c, XAML-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0447\u0435\u043d\u044c \u0441\u0445\u043e\u0436\u0438, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0445 \u0434\u043b\u044f WPF \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\/\u0441\u0432\u043e\u0439\u0441\u0442\u0432.<\/p>\n<p><strong>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043f\u043e\u043b\u043d\u044b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 BootstrapIcon \u0434\u043b\u044f WPF:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u0434 \u043a\u043b\u0430\u0441\u0441\u0430: <a href=\"https:\/\/github.com\/schavelev\/path-icons\/blob\/main\/examples\/AppIcons\/TryWpf\/Controls\/BootstrapIcon.cs\" rel=\"noopener noreferrer nofollow\">AppIcons\/TryWpf\/Controls\/BootstrapIcon.cs<\/a><\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0434 \u0442\u0435\u043c\u044b: <a href=\"https:\/\/github.com\/schavelev\/path-icons\/blob\/main\/examples\/AppIcons\/TryWpf\/Controls\/BootstrapIcon.xaml\" rel=\"noopener noreferrer nofollow\">AppIcons\/TryWpf\/Controls\/BootstrapIcon.xaml<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0428\u0430\u0433 5 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d. \u041c\u044b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043a\u043e\u0434 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code> \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 WPF-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0448\u0430\u0433\u0435 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<p><a class=\"anchor\" name=\"step6\" id=\"step6\"><\/a><\/p>\n<h2>\u0428\u0430\u0433 6: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f WPF<\/h2>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code> \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 WPF-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <code>TryWpf<\/code>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043e\u043a\u043d\u0430 <code>MainWindow.xaml<\/code>, \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0432 \u0448\u0442\u0430\u0442\u043d\u044b\u0439 <code>ToolBar<\/code>.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043e\u043a\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430: <code>xmlns:ui=\"clr-namespace:TryWpf.Controls\"<\/code>.<\/p>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 <code>&lt;DockPanel&gt;<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c <code>&lt;ToolBarTray DockPanel.Dock=\"Top\"&gt;<\/code> \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c <code>&lt;ToolBar&gt;<\/code>. \u041d\u0430 \u044d\u0442\u043e\u043c \u0442\u0443\u043b\u0431\u0430\u0440\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0441 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u043c <code>&lt;ui:BootstrapIcon&gt;<\/code> \u0438 <code>&lt;TextBlock&gt;<\/code> \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 Avalonia), \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>&lt;Separator&gt;<\/code>. \u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u043a\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438 \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f:<\/p>\n<pre><code class=\"xml\">&lt;Button&gt;     &lt;StackPanel&gt;         &lt;ui:BootstrapIcon Symbol=\"WindowSidebar\" \/&gt;         &lt;TextBlock Text=\"Sidebar\" \/&gt;     &lt;\/StackPanel&gt; &lt;\/Button&gt; &lt;Separator\/&gt; <\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 MainWindow.xaml (\u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043e\u0434\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u043c)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;Window x:Class=\"TryWpf.MainWindow\"         xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"         xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"         xmlns:d=\"http:\/\/schemas.microsoft.com\/expression\/blend\/2008\"         xmlns:mc=\"http:\/\/schemas.openxmlformats.org\/markup-compatibility\/2006\"         xmlns:ui=\"clr-namespace:TryWpf.Controls\"         xmlns:sys=\"clr-namespace:System;assembly=System.Runtime\"         mc:Ignorable=\"d\"         Title=\"TryWpf\" Height=\"150\" Width=\"600\"&gt;     &lt;DockPanel&gt;         &lt;ToolBarTray DockPanel.Dock=\"Top\" IsLocked=\"True\"&gt;             &lt;ToolBar&gt;                 &lt;Button&gt;                     &lt;StackPanel&gt;                         &lt;ui:BootstrapIcon Symbol=\"WindowSidebar\"\/&gt;                         &lt;TextBlock Text=\"Sidebar\"\/&gt;                     &lt;\/StackPanel&gt;                 &lt;\/Button&gt;                 &lt;Separator\/&gt;             &lt;\/ToolBar&gt;         &lt;\/ToolBarTray&gt;         &lt;TextBlock Text=\"Welcome to Wpf!\" VerticalAlignment=\"Center\" HorizontalAlignment=\"Center\"\/&gt;     &lt;\/DockPanel&gt; &lt;\/Window&gt; <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043d\u043e\u043f\u043e\u043a \u043d\u0430 \u0442\u0443\u043b\u0431\u0430\u0440, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u0442\u0438\u043b\u0438. \u0417\u0434\u0435\u0441\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043a\u043e\u043d\u043e\u043a \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430 <code>&lt;sys:Double x:Key=\"BootstrapIconSize\"&gt;32&lt;\/sys:Double&gt;<\/code>.<\/p>\n<p><a href=\"https:\/\/github.com\/schavelev\/path-icons\/blob\/main\/examples\/AppIcons\/TryWpf\/MainWindow.xaml\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 AppIcons\/TryWpf\/MainWindow.xaml \u043d\u0430 GitHub<\/a>.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442 <code>TryWpf<\/code>, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0428\u0430\u0433 6 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d. \u041c\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u0432 WPF-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.<\/p>\n<p><a class=\"anchor\" name=\"conclusion\" id=\"conclusion\"><\/a><\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0435 \u043c\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u043f\u0443\u0442\u044c \u043e\u0442 \u0432\u044b\u0431\u043e\u0440\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a Bootstrap Icons \u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code> \u0434\u043b\u044f Avalonia \u0438 WPF. \u041c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <code>SharedLib<\/code> \u0434\u043b\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0438\u043a\u043e\u043d\u043e\u043a \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 UI-\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044b, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u0438\u043a\u043e\u043d\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442\u043d\u044b\u0435, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u0438\u043a\u043e\u043d\u043a\u0438 \u0432 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0430 \u043e\u0431\u0435\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0435\u0434\u0438\u043d\u0443\u044e \u0431\u0430\u0437\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0438\u043a\u043e\u043d\u043e\u043a, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0441\u0432\u043e\u0438 \u0438\u043b\u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0432 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0432\u0438\u0434\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430.<\/p>\n<p>\u042d\u0442\u043e\u0442 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0432 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0430 Avalonia\/WPF.<\/p>\n<p><strong>\ud83d\udd17 \u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438<\/strong><\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 AvaloniaUI (\u0432\u0435\u0440\u0441\u0438\u044f 11.3.0) \u043d\u0430 GitHub: <a href=\"https:\/\/github.com\/AvaloniaUI\/Avalonia\/tree\/release\/11.3.0\/src\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a><\/p>\n<\/li>\n<li>\n<p>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 Bootstrap Icons: <a href=\"https:\/\/icons.getbootstrap.com\/\" rel=\"noopener noreferrer nofollow\">icons.getbootstrap.com<\/a><\/p>\n<\/li>\n<li>\n<p>\u041e\u043d\u043b\u0430\u0439\u043d-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 SVG-\u043f\u0443\u0442\u0435\u0439: <a href=\"https:\/\/yqnn.github.io\/svg-path-editor\/\" rel=\"noopener noreferrer nofollow\">SvgPathEditor<\/a><\/p>\n<\/li>\n<li>\n<p>\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043a\u043e\u0434\u0430 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>BootstrapSymbol<\/code> (npm \u043f\u0430\u043a\u0435\u0442): <a href=\"https:\/\/www.npmjs.com\/package\/path-icons\/\" rel=\"noopener noreferrer nofollow\">path-icons<\/a><\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u043d\u0430 GitHub: <a href=\"https:\/\/github.com\/schavelev\/path-icons\/tree\/main\/examples\/AppIcons\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a><\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\ud83d\udc49 \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442&#8230;<\/strong><br \/> \u041d\u0435 \u0443\u0434\u0430\u043b\u044f\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0430 \u0438\u0445 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430: \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>BootstrapIcon<\/code> \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043c\u0435\u043d\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0435 ToolBar.<\/p>\n<\/blockquote>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/904886\/\"> https:\/\/habr.com\/ru\/articles\/904886\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a class=\"anchor\" name=\"intro\" id=\"intro\"><\/a><\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<figure class=\"\">\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 Bootstrap Icons<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043c\u0438\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0431\u0443\u0434\u044c \u0442\u043e \u0432\u0435\u0431 \u0438\u043b\u0438 \u0434\u0435\u0441\u043a\u0442\u043e\u043f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043e\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0442\u044a\u0435\u043c\u043b\u0435\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0412\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u0438\u043a\u043e\u043d\u043a\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u044b\u0445, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/icons.getbootstrap.com\/\" rel=\"noopener noreferrer nofollow\">Bootstrap Icons<\/a>, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0431\u043e\u043b\u0435\u0435 2000 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a. \u0425\u043e\u0442\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f Bootstrap Icons \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043a\u0430\u043a npm-\u043f\u0430\u043a\u0435\u0442 <a href=\"https:\/\/www.npmjs.com\/package\/bootstrap-icons\" rel=\"noopener noreferrer nofollow\">bootstrap-icons<\/a> \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443, \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441 \u043d\u0443\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b <code>BootstrapIcon<\/code> \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0430 Avalonia\/WPF. \u0421\u0430\u043c\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0431\u0435\u0440\u0435\u043c \u0438\u0437 SVG-\u0444\u0430\u0439\u043b\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <code>bootstrap-icons<\/code>, \u043e\u0442\u0441\u044e\u0434\u0430 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430.<\/p>\n<p>\u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445 \u0441 Avalonia \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0443\u043f\u043e\u0440 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 Avalonia. \u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f WPF, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0441 WPF \u043d\u0430 Avalonia.<\/p>\n<p>\ud83d\udd17 \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044b <code>BootstrapIcon<\/code> \u0434\u043b\u044f Avalonia \u0438 WPF \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u043d\u0430 <a href=\"https:\/\/github.com\/schavelev\/path-icons\/tree\/main\/examples\/AppIcons\" rel=\"noopener noreferrer nofollow\">GitHub<\/a>.<\/p>\n<blockquote>\n<p><strong>\ud83d\udc49 \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442&#8230;<\/strong><br \/> \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0435\u0449\u0451 \u043f\u0430\u0440\u044b \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0430 ToolBar \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <code>BootstrapIcon<\/code>.<\/p>\n<\/blockquote>\n<p><strong>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"#intro\" rel=\"noopener noreferrer nofollow\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#concept_structure\" rel=\"noopener noreferrer nofollow\">\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step1\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 1: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step2\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 2: \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043e\u043a \u0432 SharedLib<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step3\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 3: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f Avalonia<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step4\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 4: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f Avalonia<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step5\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 5: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f WPF<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#step6\" rel=\"noopener noreferrer nofollow\">\u0428\u0430\u0433 6: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 BootstrapIcon \u0434\u043b\u044f WPF<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#conclusion\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"concept_structure\" id=\"concept_structure\"><\/a><\/p>\n<h2>\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430<\/h2>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code>, \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043b\u0435\u0436\u0438\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0432\u044b\u0431\u043e\u0440\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 Bootstrap Icons \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0438\u043a\u043e\u043d\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431 \u0438\u043a\u043e\u043d\u043a\u0430\u0445 \u0432 \u043a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u0449\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Avalonia \u0438 WPF.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e Bootstrap Icons?<\/h3>\n<figure class=\"\"><\/figure>\n<p>\u0412 \u043c\u0438\u0440\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <a href=\"https:\/\/fonts.google.com\/icons\" rel=\"noopener noreferrer nofollow\">Google Fonts Icons<\/a>, <a href=\"https:\/\/feathericons.com\" rel=\"noopener noreferrer nofollow\">Feather Icons<\/a>, <a href=\"https:\/\/fontawesome.com\/\" rel=\"noopener noreferrer nofollow\">Font Awesome<\/a> \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e <a href=\"https:\/\/icons.getbootstrap.com\/\" rel=\"noopener noreferrer nofollow\">Bootstrap Icons<\/a> \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<ul>\n<li>\n<p><strong>\u041f\u043e\u043b\u043d\u043e\u0442\u0430 \u0438 \u0441\u0442\u0438\u043b\u044c<\/strong>: \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0431\u043e\u043b\u0435\u0435 2000 \u0438\u043a\u043e\u043d\u043e\u043a, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f; \u0432\u044b\u0434\u0435\u0440\u0436\u0430\u043d\u0430 \u0432 \u0435\u0434\u0438\u043d\u043e\u043c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u0441\u0442\u0438\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f<\/strong>: Bootstrap Icons \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u043b\u0438\u0447\u043d\u044b\u0445 \u0438 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p><strong>\u0415\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0434\u0438\u0437\u0430\u0439\u043d\u0430<\/strong>: \u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a Bootstrap \u0438 \u0435\u0433\u043e \u0438\u043a\u043e\u043d\u043a\u0438 \u0434\u043b\u044f \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0432\u044b\u0431\u043e\u0440 Bootstrap Icons \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Avalonia\/WPF \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0435\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f \u0432 \u0434\u0438\u0437\u0430\u0439\u043d\u0435 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 SVG-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/strong>: \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0438 \u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 SVG: <\/p>\n<ul>\n<li>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e (2070 \u0438\u0437 2074) Bootstrap Icons \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b <code>&lt;path&gt;<\/code> (\u043d\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 <code>&lt;circle&gt;<\/code>, <code>&lt;rect&gt;<\/code>), \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432\u0440\u043e\u0434\u0435 <code>stroke-width<\/code>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 SVG-\u0444\u0430\u0439\u043b\u0430: \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0438\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>d<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;path&gt;<\/code> \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 Bootstrap Icons \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u043c\u043a\u0430 \u0438 \u0437\u043d\u0430\u0447\u043e\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u0430\u043c\u043a\u0438), \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c <code>&lt;path&gt;<\/code> \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c SVG. \u042d\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0442\u0430\u043a\u043e\u043c\u0443 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438<\/strong>: \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b SVG-\u0444\u0430\u0439\u043b\u043e\u0432 Bootstrap Icons \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u043a\u043e\u043d\u043e\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e JSON-\u0444\u0430\u0439\u043b\u0443 \u0441 \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u0438\u043a\u043e\u043d\u043e\u043a \u0438 \u0438\u0445 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043a\u043e\u0434 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>BootstrapSymbol<\/code> (\u043e \u043d\u0451\u043c \u2014 \u043d\u0438\u0436\u0435).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 Avalonia\/WPF \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0441 \u0446\u0435\u043b\u044b\u043c\u0438 SVG-\u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u0430 \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0442\u0438\u043f\u0430 <code>StreamGeometry<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0437 \u0441\u0442\u0440\u043e\u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>d<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;path&gt;<\/code>. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b SVG-\u0444\u0430\u0439\u043b\u043e\u0432 <code>bootstrap-icons<\/code> \u0434\u0435\u043b\u0430\u044e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u043a\u043e\u043d\u043e\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<h3>\u041f\u043e\u0434\u0445\u043e\u0434 \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h3>\n<figure class=\"\"><\/figure>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e <code>BootstrapIcon<\/code> \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043d\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u0430\u0445 <code>PathIcon<\/code> &#8212; \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Avalonia. \u0428\u0442\u0430\u0442\u043d\u044b\u0439 <code>PathIcon<\/code> \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u043e\u0434\u043d\u043e\u0433\u043e <code>StreamGeometry<\/code> (\u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043e\u0434\u0438\u043d <code>path<\/code>). \u041d\u0430\u0448 <code>BootstrapIcon<\/code> \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u044d\u0442\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0434\u043e \u0434\u0432\u0443\u0445 <code>StreamGeometry<\/code> \u0441 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e.<\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u043d\u0435 \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u044b (xaml\/axaml-\u0444\u0430\u0439\u043b\u044b), \u0430 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Avalonia \u0438\u043b\u0438 WPF.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u0438\u0437 \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e <code>PathIcon<\/code> \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0432\u043e\u0439 <code>BootstrapIcon<\/code> \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 SVG-\u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <code>bootstrap-icons<\/code>. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043a\u043e\u043d\u043e\u043a \u0438\u0437 \u044d\u0442\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 (\u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u0443).<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430, \u0447\u0442\u043e\u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<h3>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430<\/h3>\n<figure class=\"\"><\/figure>\n<p>\u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b <code>BootstrapIcon<\/code>, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u2014 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 Avalonia, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043a\u0438 \u0442\u0440\u0435\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:<\/p>\n<ol>\n<li>\n<p><code>&lt;PathIcon&gt;<\/code> \u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e).<\/p>\n<\/li>\n<li>\n<p><code>&lt;PathIcon&gt;<\/code> \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u0437\u0430\u043b\u0438\u0432\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><code>&lt;Viewbox&gt;<\/code> \u0441 \u0434\u0432\u0443\u043c\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 <code>&lt;Path&gt;<\/code>, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0446\u0432\u0435\u0442, \u2014 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code>.<\/p>\n<\/li>\n<\/ol>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b .NET SDK 8.0 (\u0438\u043b\u0438 \u043d\u043e\u0432\u0435\u0435) \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b Avalonia. \u0415\u0441\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b Avalonia \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0438\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">dotnet new install Avalonia.Templates <\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Avalonia \u0432 \u043b\u044e\u0431\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">dotnet new avalonia.app -n TryIcon -f net8.0 <\/code><\/pre>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0432 <code>MainWindow.axaml<\/code>, \u0433\u0434\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0438\u043a\u043e\u043d\u043a\u0443 &#171;database-x&#187; \u0442\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:<\/p>\n<ol>\n<li>\n<p><strong>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438:<\/strong> <a href=\"https:\/\/icons.getbootstrap.com\/icons\/database-x\/\" rel=\"noopener noreferrer nofollow\">\u041d\u0430 \u0441\u0430\u0439\u0442\u0435 Bootstrap Icons<\/a> \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0438\u0437 SVG-\u0444\u0430\u0439\u043b\u0430 \u0438\u043a\u043e\u043d\u043a\u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>d<\/code> \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <code>&lt;path&gt;<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432:<\/strong> \u0412 <code>&lt;Window.Resources&gt;<\/code> \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c: <\/p>\n<ul>\n<li>\n<p>\u0414\u0432\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 <code>&lt;StreamGeometry x:Key=\"PrimaryGeometry\"\/&gt;<\/code> \u0438 <code>&lt;StreamGeometry x:Key=\"SecondaryGeometry\"\/&gt;<\/code> \u0434\u043b\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438 (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>path.d<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0441\u0443\u0440\u0441 <code>&lt;StreamGeometry x:Key=\"IconGeometry\"\/&gt;<\/code> \u043a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 (\u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b) \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438 \u0448\u0442\u0430\u0442\u043d\u044b\u043c <code>PathIcon<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 <code>&lt;SolidColorBrush&gt;<\/code> (\u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 <code>IconBrush<\/code>, <code>PrimaryForeground<\/code>, <code>SecondaryForeground<\/code>) \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/strong> \u0412 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u043e\u043a\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c <code>&lt;StackPanel&gt;<\/code> \u0441 \u0442\u0440\u0435\u043c\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438: <\/p>\n<ul>\n<li>\n<p>\u0414\u0432\u0430 <code>PathIcon<\/code>, \u0441\u0441\u044b\u043b\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u0443\u044e <code>IconGeometry<\/code> (\u043e\u0434\u0438\u043d \u0431\u0435\u0437 \u0446\u0432\u0435\u0442\u0430, \u0432\u0442\u043e\u0440\u043e\u0439 \u0441 <code>IconBrush<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u041e\u0434\u0438\u043d <code>&lt;Viewbox&gt;<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0430\u0448\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u043c <code>BootstrapIcon<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <code>&lt;Viewbox&gt;<\/code> \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 <code>BootstrapIcon<\/code>:<\/p>\n<pre><code class=\"xml\">&lt;Viewbox Width=\"32\" Height=\"32\" Stretch=\"Uniform\"&gt;     &lt;Panel&gt;         &lt;Path Width=\"16\" Height=\"16\" Stretch=\"None\"               Data=\"{StaticResource PrimaryGeometry}\"               Fill=\"{StaticResource PrimaryForeground}\"\/&gt;         &lt;Path Width=\"16\" Height=\"16\" Stretch=\"None\"               Data=\"{StaticResource SecondaryGeometry}\"               Fill=\"{StaticResource SecondaryForeground}\"\/&gt;     &lt;\/Panel&gt; &lt;\/Viewbox&gt; <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;Path&gt;<\/code> \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0432\u043d\u0443\u0442\u0440\u0438 <code>&lt;Panel&gt;<\/code>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0438\u043c \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 <code>&lt;Path&gt;<\/code> \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0438\u0437 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>PrimaryGeometry<\/code> \u0438 \u0437\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u043e\u043c \u0438\u0437 <code>PrimaryForeground<\/code>. \u0412\u0442\u043e\u0440\u043e\u0439 <code>&lt;Path&gt;<\/code> \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 <code>SecondaryGeometry<\/code> \u0438 <code>SecondaryForeground<\/code>.<\/p>\n<p>\u041e\u0431\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>&lt;Path&gt;<\/code> \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b 16&#215;16 (\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043a\u043e\u043d\u043e\u043a Bootstrap) \u0441 \u0437\u0430\u043f\u0440\u0435\u0442\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f (<code>Stretch=\"None\"<\/code>). \u042d\u043b\u0435\u043c\u0435\u043d\u0442 <code>&lt;Viewbox&gt;<\/code> \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 <code>&lt;Panel&gt;<\/code> \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 <code>BootstrapIcon<\/code> (<code>Stretch=\"Uniform\"<\/code>).<\/p>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 <code>MainWindow.axaml<\/code> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0438\u0436\u0435.<\/p>\n<details class=\"spoiler\">\n<summary>\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 MainWindow.axaml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;Window xmlns=\"https:\/\/github.com\/avaloniaui\"         xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"         xmlns:d=\"http:\/\/schemas.microsoft.com\/expression\/blend\/2008\"         xmlns:mc=\"http:\/\/schemas.openxmlformats.org\/markup-compatibility\/2006\"         mc:Ignorable=\"d\" d:DesignWidth=\"800\" d:DesignHeight=\"450\"         x:Class=\"TryIcon.MainWindow\"         Title=\"TryIcon\"&gt;     &lt;Window.Resources&gt;         &lt;StreamGeometry x:Key=\"IconGeometry\"&gt;M12.096 6.223A5 5 0 0 0 13 5.698V7c0 .289-.213.654-.753 1.007a4.5 4.5 0 0 1 1.753.25V4c0-1.007-.875-1.755-1.904-2.223C11.022 1.289 9.573 1 8 1s-3.022.289-4.096.777C2.875 2.245 2 2.993 2 4v9c0 1.007.875 1.755 1.904 2.223C4.978 15.71 6.427 16 8 16c.536 0 1.058-.034 1.555-.097a4.5 4.5 0 0 1-.813-.927Q8.378 15 8 15c-1.464 0-2.766-.27-3.682-.687C3.356 13.875 3 13.373 3 13v-1.302c.271.202.58.378.904.525C4.978 12.71 6.427 13 8 13h.027a4.6 4.6 0 0 1 0-1H8c-1.464 0-2.766-.27-3.682-.687C3.356 10.875 3 10.373 3 10V8.698c.271.202.58.378.904.525C4.978 9.71 6.427 10 8 10q.393 0 .774-.024a4.5 4.5 0 0 1 1.102-1.132C9.298 8.944 8.666 9 8 9c-1.464 0-2.766-.27-3.682-.687C3.356 7.875 3 7.373 3 7V5.698c.271.202.58.378.904.525C4.978 6.711 6.427 7 8 7s3.022-.289 4.096-.777M3 4c0-.374.356-.875 1.318-1.313C5.234 2.271 6.536 2 8 2s2.766.27 3.682.687C12.644 3.125 13 3.627 13 4c0 .374-.356.875-1.318 1.313C10.766 5.729 9.464 6 8 6s-2.766-.27-3.682-.687C3.356 4.875 3 4.373 3 4 M12.5 16a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7m-.646-4.854.646.647.646-.647a.5.5 0 0 1 .708.708l-.647.646.647.646a.5.5 0 0 1-.708.708l-.646-.647-.646.647a.5.5 0 0 1-.708-.708l.647-.646-.647-.646a.5.5 0 0 1 .708-.708&lt;\/StreamGeometry&gt;         &lt;StreamGeometry x:Key=\"PrimaryGeometry\"&gt;M12.096 6.223A5 5 0 0 0 13 5.698V7c0 .289-.213.654-.753 1.007a4.5 4.5 0 0 1 1.753.25V4c0-1.007-.875-1.755-1.904-2.223C11.022 1.289 9.573 1 8 1s-3.022.289-4.096.777C2.875 2.245 2 2.993 2 4v9c0 1.007.875 1.755 1.904 2.223C4.978 15.71 6.427 16 8 16c.536 0 1.058-.034 1.555-.097a4.5 <\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-462652","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/462652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=462652"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/462652\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=462652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=462652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=462652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}