扩展按钮图标

简介: 扩展按钮图标

HandyControl 默认的按钮图标肯定是不够我们使用的,其默认图标文档如下:

https://handyorg.github.io/handycontrol/basic_xaml/geometries/


目前默认带有的图标如下:

HandyControl默认几何形状.png


扩展原理

一般的按钮图标都普遍采用两种方式: iconfontsvg


相比之下, iconfont 使用起来容易,但是有一定的弊端,例如:项目不好维护等等, AduSkin 就是采用了这种方式。


svg 的优点在于它是矢量图,不会失真,同时也更容易进行维护,因为都是一个一个的独立文件嘛。 HandyControl 就是采用了 SVG 的方式来实现的图标。


所以, HandyControl 的扩展原理就是扩展项目中的 svg 库。


扩展方式

Step1. 首先建立资源字典

WPF 中, SVG 叫做几何形状Geometry ),我们新建一个存储 SVG资源字典,起名为 Geometries.xaml ,路径为: Resources/Themes/Basic/Geometries.xaml ,并将其引入到 App.xaml 文件中


提示

引入到 App.xaml 文件中需要按照自己的项目风格哦!


Step2. 往资源字典中添加几何图形资源

iconfont网站上下载需要的SVG图标,比如我们找一个登录图标,如下所示:

iconfont登录图标.png


选择复制svg代码,这样剪切板上就会复制到如下内容:

<svg t="1629125142627" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2764" width="200" height="200"><path d="M614.015 562.226H409.928c-191.021 0-346.487 153.046-346.487 341.29v20.07C63.441 1024 216.36 1024 409.928 1024h204.087c185.927 0 346.46 0 346.5-100.413v-20.121c0-188.156-155.48-341.291-346.5-341.291zM501.77 0C350.075 0 226.7 121.566 226.7 271.02s123.323 271.047 275.07 271.047S776.84 420.475 776.84 271.02 653.454 0 501.771 0z" p-id="2765"></path></svg>点击复制复制失败已复制


接下来在 Geometries.xaml 文件中建立Login相关的几何图形资源,如下所示:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                     xmlns:o="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options">
    <Geometry o:Freeze="True" x:Key="LoginGeometry">M614.015 562.226H409.928c-191.021 0-346.487 153.046-346.487 341.29v20.07C63.441 1024 216.36 1024 409.928 1024h204.087c185.927 0 346.46 0 346.5-100.413v-20.121c0-188.156-155.48-341.291-346.5-341.291zM501.77 0C350.075 0 226.7 121.566 226.7 271.02s123.323 271.047 275.07 271.047S776.84 420.475 776.84 271.02 653.454 0 501.771 0z</Geometry>
</ResourceDictionary>点击复制复制失败已复制


提示

做法就是建立一个 Geometry 元素,其中 x: Key 属性为自定义的名称,元素内容就是 SVG 中的 path.d 的值!


Step3. 页面引入

在页面中按照如下方式引入即可:

<Button Style="{StaticResource ButtonPrimary}" Content="登录" hc:IconElement.Geometry="{StaticResource LoginGeometry}"/>点击复制复制失败已复制


效果:

HandyControl自定义按钮图标效果.png

目录
相关文章
WPF自定义控件05:ToggleButton
本文重点介绍WPF中如何实现自定义ToggleButton控件,它是一个开关控件,通过单击来进行状态的快速切换。
6134 0
WPF自定义控件05:ToggleButton
|
C# Windows
WPF中如何使用HandyCotrol控件库
WPF中如何使用HandyCotrol控件库
1350 1
|
XML 开发框架 前端开发
在WPF应用中,结合阿里矢量图标库使用Geometry图标
在WPF应用中,结合阿里矢量图标库使用Geometry图标
|
前端开发 C# Windows
在WPF程序中实现PropertyGrid功能
【11月更文挑战第15天】PropertyGrid 是一个用户界面组件,用于直观地查看和编辑对象属性。在 WPF 中可通过组合 Expander 和 DataGrid 实现基本功能,或使用第三方库 PropertyTools 获得更强大特性,包括属性验证和类型特定编辑器。
1191 3
|
开发框架 前端开发 JavaScript
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用
|
搜索推荐 前端开发 C#
推荐7款美观且功能强大的WPF UI库
推荐7款美观且功能强大的WPF UI库
1855 2
C# WPF 中 外部图标引入iconfont,无法正常显示问题 【小白记录】
本文介绍了在C# WPF应用程序中引入外部iconfont图标时可能遇到的显示问题及其解决方法:1) 检查资源路径和引入格式是否正确,确保字体文件引用格式为“#xxxx”,并正确指向字体文件位置;2) 确保图标资源被包含在程序集中,通过设置字体文件的生成操作为Resource(资源)来实现。
C# WPF 中 外部图标引入iconfont,无法正常显示问题 【小白记录】
|
开发框架 缓存 前端开发
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
|
C# 开发者 Windows
震撼发布:全面解析WPF中的打印功能——从基础设置到高级定制,带你一步步实现直接打印文档的完整流程,让你的WPF应用程序瞬间升级,掌握这一技能,轻松应对各种打印需求,彻底告别打印难题!
【8月更文挑战第31天】打印功能在许多WPF应用中不可或缺,尤其在需要生成纸质文档时。WPF提供了强大的打印支持,通过`PrintDialog`等类简化了打印集成。本文将详细介绍如何在WPF应用中实现直接打印文档的功能,并通过具体示例代码展示其实现过程。
1546 0
|
API Apache C#
推荐2款开源、美观的WinForm UI控件库
推荐2款开源、美观的WinForm UI控件库
1268 1