(winform)基于net2.0/4.0写的小工具《桌控1.3》 论皮肤控件的制作 抛砖引玉 欢迎讨论
先AD下桌控:
--------------------------------------------------------
v1.3 更新 网站及下载:http://www.370b.com/
--------------------------------------------------------
1.引入皮肤概念,界面颜色随你调,百变桌控随你搭;
1.一键换肤
2.界面微调
2.设置添加》搜索后是否清除搜索框关键词;
3.反馈意见接口优化;
4.已知BUG修正.
--------------------------------------------------------
我的换肤的思路(不想用网上的别人开发的控件,自己瞎写 欢迎交流)
--------------------------------------------------------
1. 颜色统一在一个类里
2. 自定义继承控件 重载 OnPaintBackground 或 OnPaint 重绘的颜色从1中取
3. 界面.Refresh (这里双缓冲很重要 重载控件 最好设置双缓冲,以及窗体双缓冲)
比如 label,不想重绘文字 简单的处理,鼠标悬停变色:
其他重绘原理如上
--------------------------------------------------------
桌控界面一览:
--------------------------------------------------------
主界面1:

主界面2:

一键换肤界面:

一键换肤效果:






--------------------------------------------------------
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:

一键换肤界面:

一键换肤效果:






...全文
相关推荐
C#2.0WinForm皮肤插件
C#2.0WinForm皮肤插件,可以很轻松的实现Windows应用程序皮肤的改变
WinForm美化利器:IrisSkin2皮肤控件实战应用
IrisSkin2是一款专为WinForm应用程序设计的轻量级皮肤引擎控件,致力于在不侵入业务逻辑的前提下实现界面外观的动态美化。其核心技术基于GDI+重绘机制,通过拦截标准控件的绘制消息(如WM_PAINT),注入自定义渲染逻辑,从而实现按钮、文本框、窗体等常见控件的视觉风格替换。// 示例:基本启用代码该控件采用XML驱动的皮肤定义格式(.ssk本质为压缩后的XML),支持颜色、字体、边框、背景图等样式的外部配置,实现“一次编码,多主题切换”的开发模式。
Winfrom 界面库 CSkin支持.net 2.0 .net4.0
Winfrom 界面库 CSkin支持.net 2.0 .net4.0 挺好看的
winform皮肤 winform皮肤使用
winform皮肤,winform皮肤使用,c# .netwinform皮肤使用,blog中有介绍
DevComponents.DotNetBar2 WINFORM皮肤文件(免费)
DevComponents.DotNetBar2 WINFORM皮肤文件(免费)


非技术区

