更改窗体皮肤

第一步

  先把IrisSkin2.dll文件【添加到当前项目引用(解决方案资源管理器->当前项目->引用->右键->添加引用,找到IrisSkin2.dll文件

  IrisSkin2.dll文件最好放在当前项目\bin\Debug文件中。 【如果不放在Debug下正常情况下是不会处错误的。但是通过测试如果不放的话,添加上的控件很可能不好用,即不能向窗体上拖拽。所以,最好放在debug下。】

  第二步

  然后把IrisSkin2.dll文件添加到vc2005的工具箱:右键->选择项(这里需要等一段时间)->浏览找到IrisSkin2.dll文件(文件最好放在当前项目\bin\Debug文件中)按确定,控件就添加到工具箱中了。然后把工具箱中新添加的SkinEngine控件拖到当前项目中。

  第三步

  把皮肤。ssk文件复制到当前项目\bin\Debug文件中。

  第四步

  拖动skinEngine控件跟openFileDialog控件到窗体上,再在项目中调用。ssk皮肤文件。

  using System;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Data;
  using System.Drawing;
  using System.Text;
  using System.Windows.Forms;
  namespace WindowsApplication1
  {
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  }
  private void Form1_Load(object sender, EventArgs e)
  {
  // this.skinEngine1.SkinFile = "C:\\Documents and Settings\\Administrator\\桌面\\练习 WindowsApplication1\\bin\\Debug\\Skins\\XPGreen.ssk";
  }
  private void button1_Click(object sender, EventArgs e)
  {
  openFileDialog1.Filter = "(*.ssk)|*.ssk|txt files (*.txt)|*.txt"; //文件名筛选器
  openFileDialog1.FilterIndex = 1;
  openFileDialog1.InitialDirectory = "C:\\Documents and Settings\\Administrator\\桌面\\练习 WindowsApplication1\\bin\\Debug\\Skins\\"; //初始目录
  openFileDialog1.RestoreDirectory = true;
  openFileDialog1.FileName = "新建文件夹";
  if (openFileDialog1.ShowDialog() == DialogResult.OK)
  {
  MessageBox.Show("成功更改皮肤");
  }
  }
  private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
  {
  string name = openFileDialog1.FileName.ToString();
  this.skinEngine1.SkinFile = "C:\\Documents and Settings\\Administrator\\桌面\\练习" + name; //打开皮肤的路径
  }
  }
  }

[color=rgb(51, 102, 153) !important]
时间: 2024-08-05 07:42:44

更改窗体皮肤的相关文章

窗体皮肤实现 - 增加Toolbar的交互性

稍微改造一下,让交互性更好点.增加提示和动态效果. 控件实现内容: 1.加入Hint提示 2.加入了简易动画效果,鼠标进入和离开会有个渐变效果. 实现方案: 1.基类选用 2.Action的关联 3.绘制按钮 4.鼠标响应 5.美化(淡入淡出简易动画) OK-完成 一.基类选择 在基类选择上稍微纠结了下.Delphi大家都知道做一个显示控件一般有2种情况,一种是图形控件(VC里叫静态控件),还种种有焦点可交互的. 如果我想做个Toolbar并不需要焦点,也不需要处理键盘输入,TGraphicCo

C#窗体皮肤制作(二):创建窗体库项目以及最小化、最大化、关闭按钮的实现

很高兴有朋友关注这篇博客,同时也十分抱歉让关注的朋友久等了,隔上一篇博客也有3个月没有更新,主要是由于3月份辞职,4月份初离职到期离开了北京高德,来到了上海张江.目前新工作也处于熟悉当中,希望大家能体谅.刚好这周末有点时间,我就接着写写,这篇博客主要是针对初学者,希望给为他们能提供一种较易理解的窗体皮肤制作思路,记得自己当初学习C#编程的时候也是摸着石头过河. 闲话少说,我还是接着上篇博客继续写,上次说明了下如何收集图片资源,这次就以360安全卫士来做示例进行模仿,本来也想过模仿下qq,但是qq

窗体皮肤实现 - 在标题栏上增加快速工具条(四)

前面做的工作就是想在标题区域增加快速工具条.前续的基础工作完成,想要在标题区域增加特殊区域都非常方便.只要在绘制时控制自定义区域需要占用标题区域多少空间,然后直接在所占位置绘制.做这个事情前,稍微把代码规整了下.所以界面皮肤处理放到一个单元中. 主要处理步骤 1.划出一个新区域(整个工具条作为一个区域) 2.处理区域检测(HitTest) 3.如果是新区域,把相应消息传给这个区域处理. 4.响应鼠标点击,执行Action 通过上述步骤就能扩展出所想要的标题区快速工具条的. 标题按钮区域是作为一个

窗体皮肤实现 - 重绘窗体非客户区(三)

窗体边框基本的绘制和控制完成,在第二篇中主要遗留的问题. 标题区域图标和按钮没绘制 缩放时客户区显示有问题 解决完下面的问题,皮肤处理基本完整.大致的效果GIF GIF中TShape的颜色表现有些问题,实际是正常的. 绘制标题区域内容 获取标题有效区域 绘制窗体图标 绘制按钮 绘制标题 标题区域主要考虑窗体是否在最大化状态,最大化后实际的标题绘制区域会有变化.可以通过 IsZoomed 或 GetWindowLong(Handle, GWL_STYLE) and WS_MAXIMIZE = WS

窗体皮肤实现 - 重绘窗体非客户区(一)

现在皮肤控件也很多,但每次装一堆控件,使用又繁琐.稍微研究一下内部机制,还是比较简单的. 主要会使用到下面几个消息 1 const 2 WM_NCUAHDRAWCAPTION = $00AE; 3 WM_NCUAHDRAWFRAME = $00AF; 4 5 // 绘制非客户区消息 6 procedure WMNCPaint(var message: TWMNCPaint); message WM_NCPAINT; 7 // 在激活程序时需要相应的消息 8 procedure WMNCActiv

C#做窗体皮肤

网上有很好的皮肤控件 SkinEnigne可供使用: 具体步骤: 添加控件SkinEngine. 1.右键“工具箱”.“添加选项卡”,取名“皮肤”. 2.右键“皮肤”,“选择项”弹出对话框. 3.点击“浏览“,找到IrisSkin2.dll,这时你会发现 SkinEngine 的控件已经被打上勾 - 确定. 4.将 SkinEngine 控件添加到窗体上. 5.把皮肤文件(以ssk为后缀名)放在"~\bin\debug"文件夹里. 6.在窗体Load事件或是构造函数中添加代码:this

Winform 自定义窗体皮肤组件

分享一个很久之前写的一个Winform换肤组件. 主要利用CBT钩子,NativeWindow来实现.可实现动态换皮肤插件修改窗体显示外观. 我们先定义一个自定义组件 using Skin; using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Reflection; using Syste

使用Timer组件_实现定时更改窗体颜色

1 向窗体拖入Timer组件 2 更改其Enable属性为true 3 其interval属性为300 4 在Tick事件中写入随机变色代码 1 private void timer1_Tick(object sender, EventArgs e) 2 { //随机变色代码 3 Random rand = new Random(); 4 int i = rand.Next(); 5 i = i % 6; 6 switch (i) { 7 case 0: 8 case 1: 9 BackColo

窗体皮肤实现 - 在VC中简单实现绘制(五)

到第四部分Delphi XE3的代码能基本完成窗体界面的绘制.窗口中的其他控件的处理方法也是相同的,截获消息处理消息. 问题这个编译出来的个头可不小.Release版本竟然2.43M,完全是个胖子.系统中应该加入了大量基础代码(如泛型之类),用Delphi7编译出来应该能小一截. 使用默认Release的配置方案,没有第三方控件. 翻译到C++进行实验,发现明显这个个头没法比.Debug版本88.5K...---  这货确实小.可惜再小现公司项目也不会考虑用C++开发,有些悲剧. C版本只实现了