双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

(winform)基于net2.0/4.0写的小工具《桌控1.3》 论皮肤控件的制作 抛砖引玉 欢迎讨论

rayyu1989 rayyu1989 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
先AD下桌控:
--------------------------------------------------------
v1.3 更新 网站及下载:http://www.370b.com/
--------------------------------------------------------
1.引入皮肤概念,界面颜色随你调,百变桌控随你搭;
1.一键换肤
2.界面微调
2.设置添加》搜索后是否清除搜索框关键词;
3.反馈意见接口优化;
4.已知BUG修正.


--------------------------------------------------------
我的换肤的思路(不想用网上的别人开发的控件,自己瞎写 欢迎交流)
--------------------------------------------------------
1. 颜色统一在一个类里
2. 自定义继承控件 重载 OnPaintBackground 或 OnPaint 重绘的颜色从1中取
3. 界面.Refresh (这里双缓冲很重要 重载控件 最好设置双缓冲,以及窗体双缓冲)

比如 label,不想重绘文字 简单的处理,鼠标悬停变色:

Friend Class MyZKSkinLinkLabel
Inherits Label
Private ishover As Boolean
Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
If ishover Then
MyBase.ForeColor = MySkinHelper.Current.LinkHoverColor
Else
MyBase.ForeColor = MySkinHelper.Current.LinkColor
End If
MyBase.OnPaint(e)
End Sub
Protected Overrides Sub OnMouseEnter(e As System.EventArgs)
ishover = True
MyBase.ForeColor = MySkinHelper.Current.LinkHoverColor
End Sub
Protected Overrides Sub OnMouseLeave(e As System.EventArgs)
ishover = False
MyBase.ForeColor = MySkinHelper.Current.LinkColor
End Sub
End Class

internal class MyZKSkinLinkLabel : Label
{
private bool ishover;
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
if (ishover) {
base.ForeColor = MySkinHelper.Current.LinkHoverColor;
} else {
base.ForeColor = MySkinHelper.Current.LinkColor;
}
base.OnPaint(e);
}
protected override void OnMouseEnter(System.EventArgs e)
{
ishover = true;
base.ForeColor = MySkinHelper.Current.LinkHoverColor;
}
protected override void OnMouseLeave(System.EventArgs e)
{
ishover = false;
base.ForeColor = MySkinHelper.Current.LinkColor;
}
}


其他重绘原理如上


--------------------------------------------------------
桌控界面一览:
--------------------------------------------------------

主界面1:


主界面2:


一键换肤界面:


一键换肤效果:











...全文

相关推荐

评论 26
收藏 已收藏
分享
返回顶部
rayyu1989
非技术区 7,776 成员 63,109 内容