我想在我的标题中添加自定义图标。如何添加它并能够在菜单中显示?
1 回答
第 1 步:绘制图像(建议使用 PNG 格式)
为了获得最佳可见性,请使用白色背景 (#FFFFFF),线条为黑色 就
我个人而言,对于像素艺术,我使用 getpaint.net 中名为 Paint.NET 的程序
我找到了比像素艺术的Photoshop更好。
和 MS Paint 一样,除了它允许透明像素,有几个工具,并且允许右键和左键设置为不同的颜色,这甚至 Photoshop 都做不到(我只使用过 Mac 版本)
第 2 步:更改颜色
绘制图像后,将背景设置为白色 (#FFFFFF),将前景设置为完全透明
在 Paint.NET 中,您只需使用魔棒全局选择黑色,然后按删除键
第 3 步:将 PNG 转换为 SVG
这个网站对我来说效果最好https://convertio.co/png-svg/
还有其他网站,但大多数时候他们会给你一个 1 kb 的文件只是一个空的图像
第4步:固定间距。你以后会感谢我的。
最好使用 NotePad++,因为常规的记事本不关心间距
NotePad++ 可以理解制表符并识别包括 XML 在内的大多数语言,如果您错过了结束标记,这会有所帮助
第 5 步:为 Acumatica 添加所需的标签
在 svg 标签内,添加一个符号标签。给它一个 id
id="PX_IconName"
Acumatica 会将下划线转换为空格
id 需要对系统是唯一的,文件名也是如此,如果 Acumatica 已经给出,“PX”可以用分配给您的项目的 2 个字母前缀替换你一个。
复制svg标签中的viewBox属性,粘贴到symbol标签中id后面的
g标签里面,去掉fill属性,加上class属性class="ac"
,别忘了后面的</symbol>标签</g> 标签
如果图像有曲线,您可能希望将 g 的笔画属性设置为“圆形”,这可能会有所不同
文件应如下所示
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="400.000000pt" height="400.000000pt" viewBox="0 0 400.000000 400.000000" preserveAspectRatio="xMidYMid meet">
<symbol id="PX_IconName" viewBox="0 0 400.000000 400.000000">
<g transform="translate(0.000000,400.000000) scale(0.100000,-0.100000)" stroke="none">
<path d="M1923 2950 c-12 -5 -26 -17 -31 -27 -14 -27 13 -1382 28 -1397 6 -6 45 -11 91 -11 110 0 109 -2 109 191 0 84 5 390 11 680 l10 527 -21 21 c-17 17 -35 21 -98 23 -42 2 -87 -1 -99 -7z"/>
<path d="M1923 1325 c-44 -19 -56 -48 -56 -140 -1 -129 31 -165 145 -165 107 0 148 44 148 160 0 82 -20 127 -64 145 -44 19 -131 19 -173 0z"/>
</g>
</symbol>
</svg>
第六步:将svg文件添加到实例
svg文件在实例的\Content\svg_icons文件夹中,然后我们将它包含到包中进行分发
。名称需要唯一,因为实际文件将被复制到实例中文件夹,因此任何冲突都会导致文件被覆盖
注意:
经过大量的试验和错误,以及阅读 Acumatica 生成的 HTML,我发现带有透明前景的白色背景图像以及 class="ac" 标签允许 Acumatica 处理图像的着色。
如果您不按照这些步骤操作,图像将始终是黑色的,或者只是不可见。这两个结果看起来都很糟糕。
另外需要注意的是,Acumatica 目前不允许在仪表板小部件或移动站点地图中使用自定义图标
如果您认为应该实现这两个功能,请在此处给想法投票:
https ://feedback.acumatica.com/ideas/ ACU-I-1917
https://feedback.acumatica.com/ideas/ACU-I-2029