强大的PropertyGrid

2023-10-27

 PropertyGrid, 做工具一定要用这东西.....

把要编辑的对象看成类的话, 所有要编辑的属性就是成员

嗯嗯, 最近看了几眼Ogitor, 它对于PropertyGrid的使用就很不错

所有要编辑的对象(灯光, 模型, 粒子等等)都有一个共同的基类, 每当选中一个可编辑对象时, 右边的属性框里就显示出当前对象的属性...(公司那个编辑器要多土就有多土-_-)

尽管Ribbon界面看起来很酷, 我还是对MFC提不起兴趣来...

.net里的PropertyGrid更方便, 一点一点来:

属性自动绑定:

只需要一句

它就能自动识别出Human类中的property, 并且自动关联到PropertyGrid中:

对属性进行分类并加注释:

太爽啦~颜色自己就能识别........

弄个Image类型居然还能自己选择文件...NB啊

除了基本类型之外, Font, Size, Color等复杂类型也可以支持, 那么自定义类型呢?

如果只是像上面那样放上的话, 只会得到个灰色不可编辑的东西~

要想让PropertyGrid能够展开Vector3属性, 指定一下TypeConverter就可以了:

对于枚举类型, PropertyGrid会自动显示成下拉框. 把性别改成枚举看看:

另外, 还可以弹出自定义的编辑界面, 比如随时间变化的曲线啦(经常用来做效果...)

这个, 暂时没需求, 不实现了, 有兴趣的参考:Getting the Most Out of the .NET Framework PropertyGrid Control

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强大的PropertyGrid 的相关文章

随机推荐

  • unity 3D RPG高级教程(十)

    目录 声明 1 Action Button 快捷栏按键 2 Stats Info 显示 Player 相关信息 3 Change Animator 切换动画控制器 4 Item Tooltip 物品信息显示栏 5 Loot Items 掉落
  • misc.func.php,完美解决 discuz 您的管理面板已经锁定!

    出现 对不起 由于您多次输入错误密码 所以管理面板暂时锁定 您现在无法进入管理面板 15 分钟以后 锁定会自动解除 的提示 是出于安全的考虑 在您连续输入五次密码 仍然没有成功登陆的情况下所提示的 并且会在 15 分钟内禁止此 IP 再次登
  • mysql怎样设置默认值约束_MySQL默认值约束怎么用

    本篇文章将介绍default 默认约束 如何使用和改动后的效果 常用数据库约束 default 默认约束 not null 非空约束 指定某列不为NULL unique 唯一约束 指定某列和几列组合的数据不能重复 primary key 主
  • 【C/C++多线程编程之九】pthread读写锁

    多线程编程之读写锁 Pthread 是 POSIX threads 的简称 是POSIX的 线程标准 pthread读写锁把对共享资源的访问者分为读者和写者 读者只对共享资源进行读访问 写者只对共享资源进行写操作 在互斥机制 读者和写者都需
  • 详解Nodejs中的模块化

    Nodejs是一个基于Chrome V8引擎的JavaScript运行时环境 它允许开发者使用JavaScript在服务器端运行代码 在Nodejs中 模块化是一种组织和重用代码的重要方式 模块化允许我们将代码拆分成小块 使得代码结构更清晰
  • Windows10访问Ubuntu子系统(WSL)的桌面环境

    Windows10访问Ubuntu子系统 WSL 的桌面环境 文章目录 Windows10访问Ubuntu子系统 WSL 的桌面环境 Why Linux Why WSL 开启WSL Ubuntu换源 更新与升级 安装桌面环境xubuntu
  • Pytorch-YOLOV4-火焰目标检测

    首先感谢大佬提供的代码bubbliiiing 0 效果展示 1 所需环境 torch 1 2 0 2 注意事项 代码中的yolo4 weights pth是基于608x608的图片训练的 代码中的默认anchors是基于608x608的图片
  • SystemC在Ubuntu16.04上安装测试

    使用SystemC进行硬件仿真 环境 linux x86 64 bash g 下载解压SystemC SystemC下载地址 解压下载的包 tar zxvf systemc 2 3 3 tar gz 进入解压出来的目录 准备编译安装 cd
  • 自动控制原理快速入门+理解

    用最简单的话认识全貌 PS 默认都是线性系统 即输入和输出之间是线性的 默认你知道什么是线性 初步认识控制 假设你在推箱子 你推的力气是 f f f 箱子位移是 x x x 质量是
  • 09-----检测对方网络是否正常在线的方法

    1 使用ping ping是我们经常检测对方能否正常通信的方法 它使用的协议是传输层中的ICMP 下面是我自己抓包的内容 2 使用telnet telnet一般是检测某个端口是否开放 格式为 telnet ip port 3 使用nc命令
  • 汇编语言DW、DB和DD的区别

    DW 是定义2字节空间的意思 DW属于汇编的一个伪指令 DW定义字类型变量 一个字数据占2个字节单元 读完一个 偏移量加2 DB定义字节类型变量 一个字节数据占1个字节单元 读完一个 偏移量加1 DD定义双字类型变量 一个双字数据占4个字节
  • 7.26 二进制练习题

    给你个礼物你能收到吗 打开这个exe文件后 我们看到了它让我们输入礼物提取码 我们先随便输入数据 按回车显示提取码错误还有输错的次数 我们发现这里存在着一个循环 然后我们在IDA里面打开这个文件 int cdecl main int arg
  • 大模型微调代码解析,哪些方法可以加速训练?

    近期大模型层出不穷 大家对于大模型的微调也在跃跃欲试 像Lijia的BELLE 斯坦福的Alpaca 1 清华的ChatGLM 2 中文的Chinese Vicuna 3 让我这样的普通玩家也能训练自己的微调模型 在微调和推理的时候仍然需要
  • Vim快速教程

    Vim快速教程 Vim教程 vimtutor 命令模式 Esc 视图模式 v 编辑模式 i Vim plug Vim教程 vimtutor 命令模式 Esc 快捷键 全称 功能 H J K L 方向键 前面加数字代表移动多少行或列 synt
  • 使用docker部署mysql

    1 拉取mysql 最新版本mysql docker pull mysql latest 拉取5 7版本mysql docker pull mysql 5 7 2 启动容器镜像 docker run id name mysql p 3307
  • Android Shape 的使用

    目录 什么是Shape shape属性 子标签属性 corners 圆角 solid 填充色 gradient 渐变 stroke 描边 padding 内边距 size 大小 特殊属性 rectangle 矩形 oval 椭圆 line
  • 如何在pycharm格式化请求头信息

    如何在pycharm格式化请求头信息 1 以格式化文档形式存放请求头信息 2 使用快捷键Ctrl r 输入 替换 1 2 点击Replace all 3 第2步 完成效果如下 4 去掉文档字符串的引号 使用快捷键Ctrl Alt L 让它变
  • TCP连接的状态详解以及故障排查

    1 TCP状态 LISTENING 侦听来自远方的TCP端口的连接请求 首先服务端需要打开一个socket进行监听 状态为LISTEN 有提供某种服务才会处于LISTENING状态 TCP状态变化就是某个端口的状态变化 提供一个服务就打开一
  • osgEarth的Rex引擎原理分析(九十五)地形变形(Terrain morphing)

    目标 十二 中的问题14 morphing翻译为渐变 或混合 比较合适 先看两张图 左图是使用了Image morphing 右图没有使用 morph的作用是使视域边界处的瓦片颜色和高程均匀变化 Image morphing控制颜色 Ter
  • 强大的PropertyGrid

    PropertyGrid 做工具一定要用这东西 把要编辑的对象看成类的话 所有要编辑的属性就是成员 嗯嗯 最近看了几眼Ogitor 它对于PropertyGrid的使用就很不错 所有要编辑的对象 灯光 模型 粒子等等 都有一个共同的基类 每