主题类似于层叠样式表(CSS),因为它们都可以为Web页面定义各种样式。但主题比CSS更进一步,它允许给应用程序的页面应用样式、图像甚至CSS文件,可以在应用程序、页面或服务器控件级别上应用ASP.NET中的主题。
创建主题:
为主题添加CSS样式:
可以在主题目录下添加CSS样式表文件,在将主题应用与页面时,CSS样式将自动被引入aspx页面。注意css样式的定义中,先定义的样式先应用到页面,后定义的样式后应用与页面。一些样式会改变前面的样式,应确保样式的定义顺序正确。如果css中定义的样式和外观定义的样式不一致,将优先使用外观样式。
Theme属性和styleSheetTheme的区别:
如果控件自身定义了样式,Theme属性设置的外观会覆盖
已定义的外观,而styleSheetTheme
属性设置的外观不会覆盖已定义的外观样式。
动态加载主题
必须在页面上静态控件的Page_PreInit事件触发之前设置Page属性的主题。如果使用动态控件,就应在把该控件添加到Controls集合中之前,设置Theme属性。同样在设置控件的skinid属性时,也需要遵循同样的规则。