主题(Themes)可以让你的网站保持统一的风格。当然,你也可以为单独的页面或者控件指定不同的Theme。想一下,修改整个网站的风格,只需要修改一下Theme文件就可以搞定,那是多么愉快的事啊。^_^
话不多说,就以一个简单的按钮Theme来测试测试,注意,这里讲的是自定义主题(Custom Theme)。
选择添加新项,选择皮肤文件,点击添加的时候,如果在网站下没有App_Themes文件夹,会有提示。如图:
点击是,文件夹和文件就创建好了。
打开skin文件,在文件里面添加如下代码:
里面的参数很好理解,里面的SkinId就是一个标识,控件使用的时候需要选择这个ID,BackColor="White"就是标识当某个控件使用这个SkinId的时候,该控件的BackColor为White。
就这样一个简单的Theme就做好了。接下来做一个调用这个Theme的页面。
新建一个页面UseSkinPage.aspx,往页面上添加一个Server端Button,选择Button的属性,注意里面的两项:EnableTheming和SkinID。如果要想让控件能使用Themes,EnableTheming需要设为True。SkinID就好理解了,就是skin文件里面的某个SkinID,如上面的buttonSkin1。
在这之前,需要在页面的Page里面设置Theme属性,不然页面找不到skin文件的路径,当然也就用不了Theme了。当设置了正确的Theme文件之后,在Button属性里SkinID项就可以有响应的内容让你选择了,在本页当然就是buttonSkin1了。
UseSkinPage里面的主要代码如下:
访问一下,就可以看到Button的背景被设置为White了。
在skin文件里面,针对同一类型的控件,可以有多个SkinID,在页面里面,选择不同的SkinID就可以了。
如果要想对整个网站应用某个Theme,可以在web.config文件里面的节下添加
,这样就不用在每个Page里面使用Theme=" themeName "标记了。在本例中使用的是
。
使用主题的另外一个方式是使用StyleSheetTheme。StyleSheetTheme的文件和CustomTheme的文件是一样的,里面的内容都可以保持一样,只是在调用的时候有些差别而已。
其他:
1. App_Themes目录下可以有多个Themes,使用的时候,在里面选择使用哪一个就可以了。
2. 在写skin代码的时候,VS2005不象在Page页面,会自动检验控件的ID号,SkinID不会自动检验,在编译的时候才会出错。
3. 可以使用其他控件类型的SkinID,比如,Button使用TextBox的Skin,编译不会出错,但是浏览页面的时候没效果。当使用的SkinID不存在的时候,也不会出错。
4. 主题优先级如下:Themes > 本地css > StyleSheetTheme,所以如果在Themes和StyleSheetTheme有两个同样的SkinID,页面会选择用Themes而不会用StyleSheetTheme的
大概用了一下,具体的内容自己动手试试就知道了。
下次继续……………………………