注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

【原创】DevExpress 中的LookAndFeel机理  

2011-09-30 20:55:13|  分类: C# & .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

先祝大家国庆快乐吧,这个时候还在上网的童鞋,都是命苦的娃。

Look And Feel被类UserLookAndFeel类实现,每个支持该机理的控件,都有一项属性叫做LookAndFeel,通常,所有的控件都是使用该类的一个静态缺省对象。

例如在窗体中添加一个简单按钮DevExpress.XtraEditors.SimpleButton simpleButton1,该按钮就会有LookAndFeel属性:

DevExpress 中的LookAndFeel机理 - Castor - 趁年轻,多折腾~~

你要特别注意这个LookAndFeel下的UseDefaultLookAndFeel和 UseWindowsXPTheme,这两个属性能够否决所有其他的设置。

如果UseDefaultLookAndFeel被设置为True,则所有其他的设置将会被无视,将会采用默认的设置,那么默认的设置是什么呢?默认的设置又是可以定制的。这个看起来有点奇怪,其实慢慢看就会明白。

在工具箱中Component下拖动一个DefaultLookAndFeel控件(DevExpress.LookAndFeel.DefaultLookAndFeel defaultLookAndFeel1)
后,设置其属性,这个属性就会作为全局的默认属性,程序员就可以自行定制默认的LookAndFeel了。

这个时候你试试设置UseDefaultLookAndFeel会发现只能改为True(因为没有上级的LookAndFeel供其参考了),同时把UseWindowsXPTheme设置为False,然后修改一下SkinName,例如为Lilian,会发现简单按钮的外观发生了改变。在往其中添加控件,你会发现会自动使用Lilian外观:

DevExpress 中的LookAndFeel机理 - Castor - 趁年轻,多折腾~~

现在,一旦我修改了defaultLookAndFeel1的SkinName,这四个控件的外观都会按统一的样式发生变化,有趣的是,这一改变是可以在运行时发生的,例如我们给simpleButton1添加事件:

private void simpleButton1_Click(object sender, EventArgs e)
{
    this.defaultLookAndFeel1.LookAndFeel.SkinName = "iMaginary";
}

在运行过程就可以修改程序的外观了。

如果UseDefaultLookAndFeel被设置为False,控件的外观就会受到UseWindowsXPTheme的影响,如果说UseDefaultLookAndFeel是总统的话,则UseWindowsXPTheme就是副总统了。该属性决定了控件的外观是否受到XP样式的影响,当副总统说True的时候,并且系统恰好使用了XP主题,则UserLookAndFeel.Style的值就会被无视,而采用XP的主题。

修改简单按钮的的点击事件,试试分别在副总统说True和False的时候运行该代码:

private void simpleButton1_Click(object sender, EventArgs e)
{
    this.defaultLookAndFeel1.LookAndFeel.Style = LookAndFeelStyle.Office2003;
}

你就会知道副总统还是管点事的。

如果真想修改Style,比较好的建议是在运行时修改其值,例如:

private void simpleButton1_Click(object sender, EventArgs e)
{
    this.defaultLookAndFeel1.LookAndFeel.UseWindowsXPTheme = false;
    this.defaultLookAndFeel1.LookAndFeel.Style = LookAndFeelStyle.Office2003;//要使用命名空间using DevExpress.LookAndFeel;

}
这样就可以不管控件的默认值了。

 最后说说UserLookAndFeel.Style,它接收或者返回一个 LookAndFeelStyle的枚举值,其中有Flat、Office2003、UltraFlat等,具体可查看帮助文档。

呃,还忘记了SkinName,前面可以发现,该属性接收或者返回的是字符串,其实可行的字符串也就那几种吧,即Caramel、Money Twins、Lilian、iMaginary、DevExpress Dark Style、Black、Blue,如果设置其他值,会有什么后果呢?你自己试试吧

  评论这张
 
阅读(4575)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016