如何为 c# winform 写皮肤?

2016-03-16 10:18:42 +08:00
 wizardforcel

标准库好像没提供什么自定义皮肤的接口。我不想从现有的控件派生,看到 irisskin 采用了 hook 的方式,有人知道怎么实现吗?

3301 次点击
所在节点    问与答
6 条回复
huijiewei
2016-03-16 10:29:26 +08:00
一般都是用 GDI+
wizardforcel
2016-03-16 10:41:34 +08:00
@huijiewei 我知道是 gdi+,可我不想派生控件覆写 OnPaint 。
jame
2016-03-16 11:08:19 +08:00
用 wpf 吧,比 winform 容易做皮肤
wizardforcel
2016-03-16 22:53:42 +08:00
@jame 不会像 android xml 一样难用吧。 23333

再者就是我现有的构思都是用 gdi+写的,移植起来要花一些时间。
jame
2016-03-18 14:07:33 +08:00
并不会,微软的东西对开发者挺友好的,可以直接拖控件,也可以写 xml 代码进行配置
wizardforcel
2016-03-18 14:56:00 +08:00
@jame 。。。我已经找到办法了

button.Paint += (sender2, e2) => {}; 就可以在类外修改绘制逻辑。然后可以用反射获取所有控件字段,判断控件类型并改为对应的逻辑。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/263845

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX