制作可自定义风格的winform组件类(一)准备工作

首先要明确目的,就是这组控件打算做成什么样子,都有哪些功能。我的计划如下:

一、公共的控件类,并且方便扩展

二、控件的外观素材与控件本身分离,并使外观效果更易于更新替换

三、支持一鍵换肤功能,这包括运行时与设计时

四、做一个控件皮肤风格设计器并支持多种部署方案

准备所需要的内容:

一、VS2013(废话)

二、一套默认的控件皮肤,本人的平面设计能力基本为零,所以一定是在网上摘来的,很无奈,大部分素材都是为web而生,应用在winform上总是少一种状态

三、基于上一点,所以又下载了中文PS,妄想通过简单的操作来弥补缺少的素材图

码了这么多年,这还是第一次做UI方面的设计,总有种前途多舛的感脚。

时间: 2024-11-09 04:41:17

制作可自定义风格的winform组件类(一)准备工作的相关文章

制作可自定义风格的winform组件类(四)简单按钮

实际上这并不是一个按钮,只是一个变换背影图层而已,但通过过滤背景色,它实现了按钮的不规则形态,例如最常见的圆角风格,下面是代码 namespace CDTheme { public abstract partial class CDBaseImage : CDBase { private Image _normalImage; private Image _disabledImage; public CDBaseImage() { InitializeComponent(); } [Browsa

制作可自定义风格的winform组件类(二)知识要点总结

本文不断补充中,这全都是浪费了我很多时间才走过的坎 一.继承关系. 所有自定义的控件都继承自UserControl,当然你也可以直接从标准的winform控件中派生新类,但这样生出来的控件不能在设计时使用,所以还是得规规矩矩的按.NET给定的路线走.UserControl继承于标准控件的基类Control,使得用户自定义的控件与标准控件在运行时没有任何差别,但在设计时却有很大的不同,有些属性被override后不起作用,似乎是IDE认准了原来属性的get和set方法,对策就是隐藏这个属性,然后用

制作可自定义风格的winform组件类(三)基类

一个良好的基类能决定这个控件能走多远,那么下面来定义一些事情. 定义状态,表示控件当前处于哪种状态,用来区别对同一事件作出不同的响应 [Flags] public enum CDControlState { None = 0, SkinLoaded = 1, MouseEnter = 2, MouseDown = 4, Resizing = 8, } 定义事件,用来定制需求,忽略无用的代码,以免造成过多响应或是窗口重绘 [Flags] public enum CDControlEvent { N

extjs自定义组件类

在使用extjs开发应用系统时,难免会出现一个js文件内包含数百行甚至上千行代码的情况,例如程序主界面或者复杂一点的界面,下面介绍如何通过自定义组件减少单个extjs javascript代码行数的方法. 下图中的主界面显示了两个统计图: 最初的时候统计图的js代码是写死在tagpanel里面的,通过extjs 自定义组件的方法拆分成单独的类文件以后的代码: Ext.define('app.view.main.Main_Pie_Chart', { extend: 'Ext.panel.Panel

制作c#安装程序/使用安装服务类自定义安装事件

第一步:建立工程 1.打开vs,新建项目->其他项目类型->安装和部署(),新建安装项目,命名为SetupTest. 2.新建工程后,可以在“解决方案资源管理器”里面看到子项:文件系统编辑器,注册表编辑器,文件类型编辑器,用户界面编辑器,自定义操作编辑器,启动条件编辑器.下面将会举例来说明各个地方怎么使用. 3.最简单的一个安装程序:点击“文件类型编辑器”,找到“应用程序文件夹”,添加->文件,选择你要打包的程序文件(譬如我的程序有run.exe和lib.dll组成),确定.在项目“Se

使用CSS3 制作一个material-design 风格登录界面

使用CSS3 制作一个material-design 风格登录界面 心血来潮,想学学 material design 的设计风格,就尝试完成了一个登录页面制作. 这是整体效果. 感觉还不错吧,结尾会附上代码 在编写的过程中,没有使用任何图片或者字体图标,全部使用css3完成,还是遇到一些难点和bug,所以想笔记下来,以后方便查阅. 响应式设计 在这个页面中,使用下面3点来完成响应式设计 最大宽度 .设定了一个 max-width 的最大宽度,以便在大屏幕时兼容. margin : 20px au

c# Menu和ContextMenu自定义风格简单实现

为了实现自定义的Menu和ContextMenu效果,可以通过派生ProfessionalColorTable类,在自定义类中通过重写ProfessionalColorTable类的相关属性,产生自定义菜单效果. using System.Drawing; using System.Windows.Forms; public class CustomToolStripColorTable : ProfessionalColorTable {     /// <summary>     /// 

react组件 -- React.createClass()方法--同时创建多个组件类

<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </h

Qt之模型/视图(自定义风格)

Qt之模型/视图(自定义风格) 关于自定义风格是针对视图与委托而言的,使用事件与QSS都可以进行处理,今天关于美化的细节讲解一下. 先看下图: 先撇开界面的美观性(萝卜青菜,各有所爱),就现有的这些风格,使用QSS + Qt二维绘图已经绰绰有余了.当然,如何让界面更美观,这个没有什么捷径,我只能说一句:无他,唯手熟尔!基本功搞扎实了,实现起来就会游刃有余...void DetailProgressBar::paint(QPainter *painter, const QStyleOptionVi