Files
home-PC 85919381b1 Phase 7: 自定义图标系统 + 组合嵌套 + 删除功能 + UI 优化
- 安装 FontAwesome.Sharp v6.6.0,新增 Helpers/IconProvider.cs(190+ 图标,11 分类)
- ToolEditWindow/GroupEditWindow: 添加图标选择 ComboBox,按分类分组,带图标预览
- MainWindow 卡片模板: 使用 fa:IconBlock 渲染图标,IconCode 为空时回退首字母
- 组合角标从 emoji 改为 FontAwesome Cubes 图标,放置于卡片右上角
- ComboBox 样式修复: TextBlock→ContentPresenter,支持 ItemTemplate+DisplayMemberPath
- ComboBox 滚轮修复: CanContentScroll=False 解决分组模式下滑轮跳组问题
- 编辑弹窗: 所有输入控件添加 VerticalContentAlignment=Center
- 组合可包含其他组合: GetAncestorIds 递归排除自身及祖先防止循环引用
- ProcessExecutionService: 支持嵌套组合递归执行,visited 集合防死循环
- MainWindow 右键菜单新增删除功能,工具和组合均支持
- 移除侧边栏顶部个人工具箱标题文字
- 更新测试: 适配组合嵌套逻辑,新增祖先排除测试 (83/83 通过)
2026-05-10 02:19:32 +08:00

239 lines
11 KiB
C#

using System.Collections.Generic;
using FontAwesome.Sharp;
namespace PersonalToolBox.Helpers;
public static class IconProvider
{
public record IconOption(string Name, IconChar Icon, string Category);
public static List<IconOption> AvailableIcons { get; } = new()
{
// ── 开发工具 ──
new("代码", IconChar.Code, "开发"),
new("终端", IconChar.Terminal, "开发"),
new("Bug", IconChar.Bug, "开发"),
new("Git", IconChar.GitAlt, "开发"),
new("GitHub", IconChar.Github, "开发"),
new("数据库", IconChar.Database, "开发"),
new("服务器", IconChar.Server, "开发"),
new("云服务", IconChar.Cloud, "开发"),
new("代码分支", IconChar.CodeBranch, "开发"),
new("键盘", IconChar.Keyboard, "开发"),
new("Docker", IconChar.Docker, "开发"),
new("Python", IconChar.Python, "开发"),
new("HTML5", IconChar.Html5, "开发"),
new("CSS3", IconChar.Css3Alt, "开发"),
new("JS", IconChar.Js, "开发"),
new("Markdown", IconChar.Markdown, "开发"),
new("NPM", IconChar.Npm, "开发"),
new("Node", IconChar.NodeJs, "开发"),
new("Rust", IconChar.Rust, "开发"),
// ── 文件与文件夹 ──
new("文件夹", IconChar.Folder, "文件"),
new("文件夹打开", IconChar.FolderOpen, "文件"),
new("文件夹树", IconChar.FolderTree, "文件"),
new("文件", IconChar.File, "文件"),
new("文件代码", IconChar.FileCode, "文件"),
new("文件图片", IconChar.FileImage, "文件"),
new("文件PDF", IconChar.FilePdf, "文件"),
new("文件Word", IconChar.FileWord, "文件"),
new("文件Excel", IconChar.FileExcel, "文件"),
new("文件存档", IconChar.FileArchive, "文件"),
new("文件音频", IconChar.FileAudio, "文件"),
new("文件视频", IconChar.FileVideo, "文件"),
new("文件签名", IconChar.FileSignature, "文件"),
new("下载", IconChar.Download, "文件"),
new("上传", IconChar.Upload, "文件"),
new("保存", IconChar.Save, "文件"),
new("复制", IconChar.Copy, "文件"),
new("粘贴", IconChar.Paste, "文件"),
new("剪切", IconChar.Cut, "文件"),
new("打印", IconChar.Print, "文件"),
new("剪贴板", IconChar.Clipboard, "文件"),
new("回收站", IconChar.Trash, "文件"),
new("撤销", IconChar.Undo, "文件"),
new("重做", IconChar.Redo, "文件"),
// ── 网页与网络 ──
new("地球", IconChar.Globe, "网络"),
new("WiFi", IconChar.Wifi, "网络"),
new("链接", IconChar.Link, "网络"),
new("RSS", IconChar.Rss, "网络"),
new("网络", IconChar.NetworkWired, "网络"),
new("蓝牙", IconChar.Bluetooth, "网络"),
new("信号", IconChar.Signal, "网络"),
new("卫星", IconChar.Satellite, "网络"),
new("上传云", IconChar.CloudUploadAlt, "网络"),
new("下载云", IconChar.CloudDownloadAlt, "网络"),
new("共享", IconChar.ShareAlt, "网络"),
new("同步", IconChar.Sync, "网络"),
new("邮件发送", IconChar.PaperPlane, "网络"),
new("以太网", IconChar.Ethernet, "网络"),
// ── 设置与工具 ──
new("齿轮", IconChar.Cog, "设置"),
new("扳手", IconChar.Wrench, "设置"),
new("工具", IconChar.Tools, "设置"),
new("搜索", IconChar.Search, "设置"),
new("锁定", IconChar.Lock, "设置"),
new("解锁", IconChar.Unlock, "设置"),
new("盾牌", IconChar.ShieldAlt, "设置"),
new("钥匙", IconChar.Key, "设置"),
new("放大镜+", IconChar.SearchPlus, "设置"),
new("放大镜-", IconChar.SearchMinus, "设置"),
new("过滤器", IconChar.Filter, "设置"),
new("排序", IconChar.Sort, "设置"),
new("垃圾桶", IconChar.TrashAlt, "设置"),
new("编辑", IconChar.Edit, "设置"),
new("笔", IconChar.Pen, "设置"),
new("铅笔", IconChar.PencilAlt, "设置"),
new("放大", IconChar.Expand, "设置"),
new("缩小", IconChar.Compress, "设置"),
new("二维码", IconChar.Qrcode, "设置"),
new("条形码", IconChar.Barcode, "设置"),
new("指纹", IconChar.Fingerprint, "设置"),
new("拼图", IconChar.PuzzlePiece, "设置"),
// ── 媒体与娱乐 ──
new("播放", IconChar.Play, "媒体"),
new("暂停", IconChar.Pause, "媒体"),
new("停止", IconChar.Stop, "媒体"),
new("音乐", IconChar.Music, "媒体"),
new("图片", IconChar.Image, "媒体"),
new("视频", IconChar.Video, "媒体"),
new("相机", IconChar.Camera, "媒体"),
new("游戏手柄", IconChar.Gamepad, "媒体"),
new("耳机", IconChar.Headphones, "媒体"),
new("音量", IconChar.VolumeUp, "媒体"),
new("静音", IconChar.VolumeMute, "媒体"),
new("麦克风", IconChar.Microphone, "媒体"),
new("电视", IconChar.Tv, "媒体"),
new("电影", IconChar.Film, "媒体"),
new("CD", IconChar.CompactDisc, "媒体"),
new("唱片", IconChar.Headphones, "媒体"),
// ── 常用 ──
new("主页", IconChar.Home, "常用"),
new("用户", IconChar.User, "常用"),
new("用户组", IconChar.Users, "常用"),
new("时钟", IconChar.Clock, "常用"),
new("日历", IconChar.Calendar, "常用"),
new("日历检查", IconChar.CalendarCheck, "常用"),
new("日历天", IconChar.CalendarDay, "常用"),
new("日历周", IconChar.CalendarWeek, "常用"),
new("信封", IconChar.Envelope, "常用"),
new("邮件打开", IconChar.EnvelopeOpen, "常用"),
new("铃铛", IconChar.Bell, "常用"),
new("铃铛斜线", IconChar.BellSlash, "常用"),
new("书签", IconChar.Bookmark, "常用"),
new("星标", IconChar.Star, "常用"),
new("空心星", IconChar.StarHalfAlt, "常用"),
new("心形", IconChar.Heart, "常用"),
new("旗帜", IconChar.Flag, "常用"),
new("地图标记", IconChar.MapMarkerAlt, "常用"),
new("指南针", IconChar.Compass, "常用"),
new("地图", IconChar.Map, "常用"),
new("火箭", IconChar.Rocket, "常用"),
new("灯泡", IconChar.Lightbulb, "常用"),
new("标签", IconChar.Tag, "常用"),
new("标签组", IconChar.Tags, "常用"),
new("列表", IconChar.List, "常用"),
new("列表项", IconChar.ListAlt, "常用"),
new("图表", IconChar.ChartBar, "常用"),
new("折线图", IconChar.ChartLine, "常用"),
new("饼图", IconChar.ChartPie, "常用"),
new("信息", IconChar.InfoCircle, "常用"),
new("警告", IconChar.ExclamationTriangle, "常用"),
new("问题", IconChar.QuestionCircle, "常用"),
new("检查", IconChar.CheckCircle, "常用"),
new("购物车", IconChar.ShoppingCart, "常用"),
new("信用卡", IconChar.CreditCard, "常用"),
new("钱包", IconChar.Wallet, "常用"),
new("电源", IconChar.PowerOff, "常用"),
new("闪电", IconChar.Bolt, "常用"),
new("调色板", IconChar.Palette, "常用"),
new("火", IconChar.Fire, "常用"),
new("水滴", IconChar.Tint, "常用"),
new("磁铁", IconChar.Magnet, "常用"),
new("奖杯", IconChar.Trophy, "常用"),
// ── 办公 ──
new("编辑", IconChar.Edit, "办公"),
new("笔", IconChar.Pen, "办公"),
new("注释", IconChar.Comment, "办公"),
new("评论", IconChar.Comments, "办公"),
new("邮件@", IconChar.At, "办公"),
new("地址簿", IconChar.AddressBook, "办公"),
new("便签", IconChar.StickyNote, "办公"),
new("论文", IconChar.FileAlt, "办公"),
new("文件夹+", IconChar.FolderPlus, "办公"),
new("书", IconChar.Book, "办公"),
new("书打开", IconChar.BookOpen, "办公"),
new("商务包", IconChar.Briefcase, "办公"),
new("计算器", IconChar.Calculator, "办公"),
new("图表区", IconChar.ChartArea, "办公"),
new("收件箱", IconChar.Inbox, "办公"),
new("任务列表", IconChar.Tasks, "办公"),
new("笔尖", IconChar.PenNib, "办公"),
new("签名", IconChar.Signature, "办公"),
new("印章", IconChar.Stamp, "办公"),
// ── 系统 ──
new("Windows", IconChar.Windows, "系统"),
new("桌面", IconChar.Desktop, "系统"),
new("笔记本", IconChar.Laptop, "系统"),
new("手机", IconChar.MobileAlt, "系统"),
new("平板", IconChar.TabletAlt, "系统"),
new("命令行", IconChar.Terminal, "系统"),
new("微芯片", IconChar.Microchip, "系统"),
new("硬盘", IconChar.Hdd, "系统"),
new("内存", IconChar.Memory, "系统"),
new("USB", IconChar.Usb, "系统"),
new("插件", IconChar.Plug, "系统"),
new("电池满", IconChar.BatteryFull, "系统"),
new("鼠标", IconChar.Mouse, "系统"),
new("SD卡", IconChar.SdCard, "系统"),
new("处理器", IconChar.Microchip, "系统"),
new("风扇", IconChar.Fan, "系统"),
new("温度计", IconChar.ThermometerHalf, "系统"),
// ── 社交 ──
new("微信", IconChar.Weixin, "社交"),
new("微博", IconChar.Weibo, "社交"),
new("QQ", IconChar.Qq, "社交"),
new("Discord", IconChar.Discord, "社交"),
new("Slack", IconChar.Slack, "社交"),
new("Telegram", IconChar.Telegram, "社交"),
new("Reddit", IconChar.Reddit, "社交"),
new("YouTube", IconChar.Youtube, "社交"),
new("Twitch", IconChar.Twitch, "社交"),
new("Steam", IconChar.Steam, "社交"),
// ── 箭头与导航 ──
new("右箭头", IconChar.ArrowRight, "导航"),
new("左箭头", IconChar.ArrowLeft, "导航"),
new("上箭头", IconChar.ArrowUp, "导航"),
new("下箭头", IconChar.ArrowDown, "导航"),
new("循环", IconChar.Redo, "导航"),
new("刷新", IconChar.Sync, "导航"),
new("返回", IconChar.ChevronLeft, "导航"),
new("前进", IconChar.ChevronRight, "导航"),
new("位置", IconChar.LocationArrow, "导航"),
new("十字准星", IconChar.Crosshairs, "导航"),
// ── 安全 ──
new("用户锁", IconChar.UserLock, "安全"),
new("用户盾", IconChar.UserShield, "安全"),
new("病毒", IconChar.Virus, "安全"),
new("安全盾", IconChar.ShieldVirus, "安全"),
new("指纹", IconChar.Fingerprint, "安全"),
new("ID卡", IconChar.IdCard, "安全"),
new("门禁", IconChar.DoorOpen, "安全"),
new("面具", IconChar.Mask, "安全"),
new("眼睛", IconChar.Eye, "安全"),
new("眼睛斜线", IconChar.EyeSlash, "安全"),
};
}