如何给 winform 写皮肤?

我不想从库里的控件派生,想做成 irisskin 那种 hook 形式调用,有什么办法?

阅读 5.1k
2 个回答

解决了。

通过为Paint事件赋值可以以非继承的方式修改绘制逻辑。

button1.Paint += (sender2, e2) => { };

然后可以在Form_Load回调中,反射获取所有控件字段,然后根据类型的不同,改成不同的绘制逻辑。

多余的数据可以用SetWindowLong来存储。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进