主题

来源:互联网 发布:二维数组用scanf赋值 编辑:程序博客网 时间:2024/04/28 13:31
  
主题类似于层叠样式表(CSS),因为它们都可以为Web页面定义各种样式。但主题比CSS更进一步,它允许给应用程序的页面应用样式、图像甚至CSS文件,可以在应用程序、页面或服务器控件级别上应用ASP.NET中的主题。
l创建外观文件
在项目中添加App_Themes文件夹
在App_Themes文件夹下添加主题文件夹
可以有多个主题
在主题文件下添加外观文件(.skin)
在.skin外观文件中可以定义Web服务器控件的外观,定义的样式类似aspx页面中的控件的标签,只是去除“id”等非外观属性。(可以在页面中设置好控件样式,将设置好的标签复制到.skin外观文件中,再将非外观属性删除即可)
外观样式的定义可以添加属性skinid,如<asp:TextBox skinid="myinput" bordercolor="red" ....../>
添加了skinid的外观叫做已命名外观,未添加的叫默认外观。默认外观会应用于所有未指定skinid属性的控件。而已命名外观只应用于指定了skinid属性的控件。
外观的定义中,必须包含runat=“server"的属性。
为主题添加CSS样式
可以在主题目录下添加CSS样式表文件,在将主题应用与页面时,CSS样式将自动被引入aspx页面。
注意css样式的定义中,先定义的样式先应用到页面,后定义的样式后应用与页面。一些样式会改变前面的样式,应确保样式的定义顺序正确。
如果css中定义的样式和外观定义的样式不一致,将优先使用外观样式。
禁用主题
用主题(.skin)使用Page指令的EnableTheming属性指定页面是否使用主题(.skin)。
使用控件的EnableTheming属性指定特定控件是否使。
l动态加载主题
   必须在页面上静态控件的Page_PreInit事件触发之前设置Page属性的主题。如果使用动态控件,就应在把该控件添加到Controls集合中之前,设置Theme属性。同样在设置控件的skinid属性时,也需要遵循同样的规则。