首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
宝塔
V2EX  ›  问与答

如何为 c# winform 写皮肤?

  •  
  •   wizardforcel · 2016-03-16 10:18:42 +08:00 · 2191 次点击
    这是一个创建于 1339 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 回复  |  直到 2016-03-18 14:56:00 +08:00
        1
    huijiewei   2016-03-16 10:29:26 +08:00
    一般都是用 GDI+
        2
    wizardforcel   2016-03-16 10:41:34 +08:00
    @huijiewei 我知道是 gdi+,可我不想派生控件覆写 OnPaint 。
        3
    jame   2016-03-16 11:08:19 +08:00
    用 wpf 吧,比 winform 容易做皮肤
        4
    wizardforcel   2016-03-16 22:53:42 +08:00 via Android
    @jame 不会像 android xml 一样难用吧。 23333

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

    button.Paint += (sender2, e2) => {}; 就可以在类外修改绘制逻辑。然后可以用反射获取所有控件字段,判断控件类型并改为对应的逻辑。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2522 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 11:15 · PVG 19:15 · LAX 03:15 · JFK 06:15
    ♥ Do have faith in what you're doing.