C# WinForm项目中自带的窗体风格很普通,一点都不美观。DotNetBar就是一套.NET美化控件库,有70几个控件以及多种界面的皮肤风格。关于控件的效果在官网上进行查看http://www.devcomponents.com/dotnetbar/。下面就来介绍一下如何使用DotNetBar来改变窗体的风格。

1.添加DoNetBar的程序集。

DevComponents.DotNetBar.Design.dll 控件在设计时可见所必要的程序集

DevComponents.DotNetBar2.dll 控件所在的程序集

2.建立一个窗体类FrmTest,并在FrmTest的代码文件中添加using DevComponents.DotNetBar;引用,并把窗体的基类Form更改成Office2007Form,如下所示:

using DevComponents.DotNetBar;
namespace wind
{
public partial class FrmTest : Office2007Form
{
public FrmTest()
{
InitializeComponent();
}
}
}

3.打开FrmTest窗体的设计面板就可以发现窗体的风格已经变成了office2007 的风格了,如下图所示。

窗体在设计时已经改变其风格了,但是在运行时,窗体的风格依然是WinForm自带的窗体效果,貌似更改窗体的继承基类不起作用,在网上找了一些资料,发现需要在窗体的构造函数的最前面加上下面这样一句代码。


public FrmTest()
{
this.EnableGlass = false;//关键,
InitializeComponent();
}

这下,窗体在运行时,也是office2007的风格。

4.到目前为止,我们已经能够更改窗体的风格了,但是现在还不能为整个项目变换风格,我们需要使用一个StyleManager来控制整个项目的风格,拖一个StyleManager控件到窗体上,这样就把窗体和风格管理控件进行关联。通过更改StyleManager控件的ManagerStyle属性就可以实现整个项目的换肤,下面做一个简单的示例来演示一下这种效果。

5.界面设计如下:

6.窗体代码如下。


string[] skinNames = { "Office2007Blue", "Office2007Silver", "Office2007Black", "Office2010Silver", "Office2013" };
private void FrmTest_Load(object sender, EventArgs e)
{
foreach (string skin in skinNames)
{
this.cmbSkin.Items.Add(skin);
}
} private void buttonX1_Click(object sender, EventArgs e)
{
switch (this.cmbSkin.Text)
{
case "Office2007Blue":
this.styleManager1.ManagerStyle = eStyle.Office2007Blue;
break;
case "Office2007Silver":
this.styleManager1.ManagerStyle = eStyle.Office2007Silver;
break ;
case "Office2007Black":
this.styleManager1.ManagerStyle = eStyle.Office2007Black;
break;
case "Office2010Silver":
this.styleManager1.ManagerStyle = eStyle.Office2010Silver;
break;
case "Office2013":
this.styleManager1.ManagerStyle = eStyle.Office2013;
break;
}
}

这下就实现了窗体的整体皮肤变换,不仅仅窗体的风格变了,还包括窗体上的控件也会发生改变,甚至整个项目的窗体以及上面的控件都会发生改变,下面将演示一下效果。

当然使用DotNetBar的界面没有常规界面那么稳定。

这里提示例源代码下载,下载链接:戳我

DotNetBar的使用—(界面风格)的更多相关文章

  1. 13款经典BI项目报表&界面风格设计方案

    说明 1.方案取自报表开发工具FineReport案例的配色方案 2.所有设计方案图中已标注了字体.颜色与间隔距离等,可直接调用. 报表&界面风格设计方案展示 灰蓝界面 绿色与金色 蓝绿清新风 ...

  2. Skin++ 皮肤库 CCheckListBox MFC 界面风格

    今天使用CCheckListBox,发现增加进去的字符串无法显示,但是当点击的时候,确有反应. 仔细检查代码,没有问题.之前也是这样用的,完全没有问题. 思前想后,觉得是因为使用了Skin++皮肤库, ...

  3. (转)MFC界面风格

    以前在XP写的程序,现在系统换成了WIN7,现在对话框在编辑和预览的时候显示都如图一所示,可实际编译生成之后的显示却如图二所示,是什么问题?如何设置两者的显示风格使其保持一致? ----------- ...

  4. 咏南CS开发框架新的界面风格

    咏南CS开发框架新的界面风格 这种风格完全和WINDOWS桌面一样,符合用户的操作习惯. 我的桌面的图标和WINDOWS桌面一样分为二类:1)快捷方式  2)文件夹. 如果快捷方式较多,看得人眼花缭乱 ...

  5. Pyqt4 360界面风格皮肤实现

    前言 最近用Pyqt做了软件界面,始终觉得windows风格不太好看,虽然数字公司的行为有争议,但是也不影响我欣赏360卫士的界面风格. 声明 首先声明,此项工作并非原创,而是基于这位zhuyeqin ...

  6. Qt - 设置程序界面风格(现成的QMacStyle等等)

    类的继承关系: QMotifStyle:OSF(开放基金协会)开发的一个工业标准的GUI(图形用户接口): QCDEStyle:公共桌面环境(Common Desktop Environment)的缩 ...

  7. 更换JAVA程序的界面风格

    /*这个程序主要更换JAVA的界面风格的 * 后两个Mac,CTK风格要在相关的操作系统上才能实现 */import java.awt.*;import javax.swing.*;import ja ...

  8. 【JAVA】SWING_ 界面风格

    在java中,界面外观的管理是由UIManager类来管理的.不同的系统上安装的外观不一样 ,默认的是java的跨平台外观. 1.获取系统所有外观 import javax.swing.*; impo ...

  9. Android开发学习之 定制界面风格

    统一的用户界面是可以使得应用程序更友好.要做到用户界面的统一,我们就必须用到风格(style)和主题(theme).OPhone系统提供了很多系统默认的风格和主题,但是很多情况下,这些不能满足我们的需 ...

随机推荐

  1. JavaScript把函数作为另一函数的参数

    首先说一下这个问题是怎么产生的:今天看排序算法,想要比较不同的排序算法的时间花费. 最简单的时间统计方法是在程序块开始和结束时分别计时,求一下时间差就能得出该段代码的耗时. 如: var foo = ...

  2. 下载Centos7 64位镜像

    下载Centos7 64位镜像 1.打开Centos官网 打开Centos官方网站地址:https://www.centos.org/,点击Get CentOS Now 2.点击Minimal ISO ...

  3. 多线程学习:Volatile与Synchronized的区别、什么是重排序

    java线程的内存模型 java的线程内存模型中定义了每个线程都有一份自己的共享变量副本(本地内存),里面存放自己私有的数据,其他线程不能直接访问,而一些共享变量则存在主内存中,供所有线程访问. 上图 ...

  4. 【loj6437】 【PKUSC2018】 PKUSC 计算几何

    题目大意:给你一个m个点的简单多边形.对于每个点i∈[1,n],作一个以O点为原点且过点i的圆,求该圆在多边形内的圆弧长度/圆长. 其中n≤200,m≤500. 我们将n个点分开处理. 首先,我们要判 ...

  5. Swift Podfile中的 use_frameworks!

    use_frameworks! A.用cocoapods 导入swift 框架 到 swift项目和OC项目都必须要 use_frameworks!B.使用 dynamic frameworks,必须 ...

  6. SLAP(Speaker-Listener Label Propagation Algorithm)社区发现算法

    其中部分转载的社区发现SLPA算法文章 一.概念 社区(community)定义:同一社区内的节点与节点之间关系紧密,而社区与社区之间的关系稀疏. 设图G=G(V,E),所谓社区发现是指在图G中确定n ...

  7. webstorm 添加css前缀(兼容)自动添加

    Webstorm自动添加css前缀( 兼容) 百度了很多在webstorm中添加css前缀(兼容)自动添加,autoprefixer插件是首选,对于基本的css,还有less都支持,所以就选择了aut ...

  8. 原生js 实现jquery addClass,removeClass

    代码如下: function hasClass(obj, cls) { let reg = new RegExp("(\\s|^)" + cls + "(\\s|$)&q ...

  9. Java—关于String的分析

    一.两种赋值方式的比较 1.直接赋值法:String s1="abc"; 这种赋值方法用的最多,因为它可能不需要创建对象,或者只创建一次. 它首先会判断字符串常量池有没有存在字符串 ...

  10. postman—数据同步和创建测试集

    postman使用之二:数据同步和创建测试集 一.数据同步 启动postman 后在右上角可以登录账号,登录后就可以同步自己的api测试脚本,连上网在办公区在家都可以同步. 二.创建测试集 1.点击c ...