DEV中svg图标的使用

本文介绍SVG图标的基础知识,如何在DEV环境中使用SVG图标,并提供SVG图标资源网站及编辑工具推荐。此外,还介绍了SVG图标的优缺点以及在Windows系统中的预览方法。
0、开始之前
先看看使用效果

在操作栏的使用:

在菜单中的使用

 

 1、简述SVG图标
  • 中文名:可缩放矢量图形
  • 外文名:Scalable Vector Graphics
  • 外语缩写:SVG
  • 开发商:万维网联盟
  • 发行时间:1999年
  • 格    式:矢量图
  • 延伸至:可扩展标记语言
  • 类    型:图形格式
 2、DEV中使用SVG图标

            this._btnSvgImageTest.ImageOptions.ImageToTextAlignment = DevExpress.XtraEditors.ImageAlignToText.LeftCenter;
            this._btnSvgImageTest.ImageOptions.SvgImage = global::SmartSolution.Apps.ABM.UI.Properties.Resources.newemployee;
            this._btnSvgImageTest.ImageOptions.SvgImageSize = new System.Drawing.Size(24, 24);

在DEV中svg图标都是附加于控件的ImageOptions之上,所以可以通过为ImageOptions添加扩展方法简化Svg图片的使用

    /// <summary>
    /// 图标管理
    /// </summary>
    public static class ImageOptionsExtends
    {

        /// <summary>
        /// 设置SVG图标
        /// </summary>
        public static ImageOptions SetSvgIcon(this ImageOptions options, SvgImage svg, int width = 16, int height = 16)
        {
            options.SvgImageSize = new Size(width, height);
            options.SvgImage = svg;
            return options;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="options"></param>
        /// <param name="align"></param>
        /// <param name="indent"></param>
        public static SimpleButtonImageOptions SetSvgIconPosition(this SimpleButtonImageOptions options, ImageAlignToText align, int indent)
        {
            options.ImageToTextAlignment = ImageAlignToText.LeftCenter;
            options.ImageToTextIndent = 10;
            return options;
        }

    }

调用方法:

            _btnSvgImageTest.ImageOptions
                .SetSvgIconPosition(ImageAlignToText.LeftCenter, 10)
                .SetSvgIcon(Resources.newemployee, 24, 24);

 

3、相关资源(干货分享)

到哪里去找SVG图标?

当然是大明顶顶的http://iconfont.cn/

 

 

4、怎么编辑SVG图标

推荐自己部署SVG编辑器

也可以使用鄙人部署好的:https://huaisheng.wang/svgeditor/

5、SVG图片查看和预览

SVG图片在Windows资源管理器中默认无法预览,要查看也只有通过浏览器,非常不方便。

安装SVG扩展插件,https://svgextension.codeplex.com/

附64位安装文件链接:https://pan.baidu.com/s/1nwJfJ53 密码:ixx5

推荐ImageGlass图片查看软件:

链接:https://pan.baidu.com/s/1htE6mYo 密码:b6uo

 6、关于DEV控件使用SVG总结

最大的优势,就是尺寸不限,文件很小,借助iconfont.cn和编辑工具,图标容易查找,颜色可定义

当然缺点也是有的:有些控件不支持svg图标,还有SVG图标渲染会耗费资源(可接受)


 文章作者:花生(OutMan)

发布地址:http://www.cnblogs.com/WangHuaiSheng/ 

发布时间:2017-12-02

本文版权归作者和博客园共有,欢迎转载,

但未经作者同意必须保留此段声明,

且在文章页面明显位置给出原文连接。

 

转载于:https://www.cnblogs.com/WangHuaiSheng/p/8145882.html

### Vue3 中引入和使用 SVG 图标的正确方法 在 Vue3 项目中,通过合理的方式引入和使用 SVG 图标可以显著提高项目的可维护性和性能。以下是具体的实现方式: #### 1. 安装必要的依赖 为了支持 SVG 的动态加载以及优化处理,在项目中需要安装 `vite-plugin-svg-icons` 插件。 ```bash npm install vite-plugin-svg-icons --save-dev ``` 此插件能够帮助我们将 SVG 文件作为 React 组件或 Vue 组件来使用[^2]。 --- #### 2. 配置 Vite 构建工具 编辑 `vite.config.ts` 文件并添加以下内容以启用 SVG 动态导入功能: ```typescript import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import SvgIconsPlugin from 'vite-plugin-svg-icons'; export default defineConfig({ plugins: [ vue(), SvgIconsPlugin({ iconDirs: [{ rawLocalIcon: true }, './src/assets/icons'], // 指定图标目录路径 svgoOptions: { plugins: ['removeViewBox'], }, }), ], }); ``` 上述代码片段定义了一个名为 `SvgIconsPlugin` 的插件实例,并指定了存储 SVG 图标的文件夹位置。 --- #### 3. 封装全局 SVG 图标组件 创建一个用于封装 SVG 图标的通用组件 `src/libs/svg-icon/index.vue`,其结构如下所示: ```vue <template> <svg :class="['svg-icon', className]" aria-hidden="true"> <use :xlink:href="'#' + iconName"></use> </svg> </template> <script lang="ts"> import { defineComponent } from 'vue'; export default defineComponent({ name: 'SvgIcon', props: { iconName: { type: String, required: true, }, className: { type: String, default: '', }, }, }); </script> <style scoped> .svg-icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor; overflow: hidden; } </style> ``` 该组件接收两个属性参数:`iconName` 和 `className`,分别表示图标的名称及其附加样式类名[^1]。 --- #### 4. 注册全局组件 修改 `src/libs/index.js` 文件以便注册自定义的 SVG 图标组件为全局可用: ```javascript import svgIcon from './svg-icon/index.vue'; const plugin = { install(app) { app.component('m-svg-icon', svgIcon); }, }; export default plugin; ``` 随后,在应用入口文件(通常是 `main.ts` 或 `main.js`)中完成初始化操作: ```typescript import { createApp } from 'vue'; import App from './App.vue'; import SvgIconPlugin from '@/libs/index'; const app = createApp(App); // 注册全局插件 app.use(SvgIconPlugin).mount('#app'); ``` 这一步骤使得 `<m-svg-icon>` 可被任何子组件调用而无需单独声明。 --- #### 5. 下载所需 SVG 资源 访问阿里巴巴矢量图标库网站获取目标素材集合,并将其保存至本地指定目录下(如 `/src/assets/icons/`),从而便于后续统一管理与引用[^3]。 --- #### 6. 在模板中实际运用 最后可以在任意 Vue 单元内部按照下面的形式嵌套显示特定图形元素: ```vue <m-svg-icon iconName="example-icon" className="custom-class"></m-svg-icon> ``` 此处 `"example-icon"` 应当对应于已上传到系统的具体某项资源 ID 值;同时还可以额外绑定 CSS 类名来自定义外观表现效果。 --- ### 总结 以上流程涵盖了从环境搭建直至最终呈现整个环节的关键要点,确保开发者能够在基于 Vue3 技术栈构建的应用程序里高效便捷地集成各类高质量视觉符号资产[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值