Subtext--为skin准备相关文件加载

本文介绍Subtext平台中如何通过Skins.config文件管理和配置不同皮肤模板的样式表及脚本文件,实现统一管理并减少错误。
      定制skin模板中的用户控件时,为了更好的管理样式,我们一般推荐定义样式表,然后在相应的地方添加样式,我们最好也不摇在用户控件中直接引入样式表,这样很容易出错。所以Subtext提供了一个配置文件Skins.config,其为一个定制的xml文件,专为skin设置,你可以为每套模板有选择性的添加样式文件,如下

<?xml version="1.0"?>
<SkinTemplates xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    
<!--
        Note that multiple skins may share the same template folder.
        Each template folder by 
default should have a style.css file. 
        This file does not need to be configured 
in this section.
        
        For skins that share a template folder, the skins should be 
        distinguished by their stylesheet.  Note that when specifying 
        a StyleSheet
="" attribute, this style is rendered AFTER "style.css" 
        allowing the skin to 
override template specific styles.
    
-->
    
<Skins>
        
<SkinTemplate Name="AnotherEon001" TemplateFolder="AnotherEon001">
            
<Styles>
                
<Style href="~/skins/_System/csharp.css" />
                
<Style href="~/skins/_System/commonstyle.css" />
                
<Style href="~/skins/_System/commonlayout.css" />
                
<Style href="print.css" media="print" />
            
</Styles>
        
</SkinTemplate>

        
<SkinTemplate Name="BlueBook" TemplateFolder="RedBook" StyleSheet="Blue.css">
            
<Scripts>
                
<Script Src="~/Admin/Resources/Scripts/niceForms.js" />
            
</Scripts>
            
<Styles>
                
<Style href="~/skins/_System/csharp.css" />
                
<Style href="~/skins/_System/commonstyle.css" />
                
<Style href="~/skins/_System/commonlayout.css" />
                
<Style href="niceforms-default.css" />
                
<Style href="print.css" media="print" />
            
</Styles>
        
</SkinTemplate>
</Skins>
</SkinTemplates>

这里包含几个元素呢?

一.SkinTemplates为根路径
二.Skins表示模板集合
三.SkinTemplate表示一个模板的内容包含Styles和Scripts
四.Styles表示要加载的样式文件集合
五.Scripts表示要加载的脚本文件集合

页面会根据模板到这个配置文件里来读取并加载相关文件。

xml定义好了,你该如何做呢.利用xml序列化的功能.你首先得为上面的几个对象定义实体类



注意元数据属性,是为必须的,根据元数据熟悉属性再看看那个xml文件,意思是一一对应的。

接着便是SkinTemplates的真正反序列化的过程了,接着呢你就可以来个迭代,来加载相关skin文件了。
当然别忘了定义一个集合skins
        [XmlArray("Skins")]
        
public List<SkinTemplate> Templates
        
{
            
get {return this._skinTemplates;}
            
set {this._skinTemplates = value;}
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值