Asp.net 主题

时间:2021-08-25 12:34:11

设定主题:

右击网站,选择添加ASP.NET文件夹,选择主题。系统默认将文件夹命名为App_Themes,我们在这个文件夹下添加外观文件,在.skin后缀的文件中自定义我们想要的主题。

例如:

<%-- 2.默认外观。未定义SkinId。在同一主题中每个控件类型只允许有一个默认的控件外观。--%>

<asp:Imagerunat="server"ImageUrl="~/images/image1.jpg"/>

<asp:Buttonrunat="server"BackColor="lightblue"FontColor="black"/>

<%--为Lable控件定义三种外观--%>

<asp:Labelrunat="server"foreColor="#FF0000"Font-Size="X-Small" />

<asp:Labelrunat="server"foreColor="#00FF00"Font-Size="X-Small" SkinId="LableGreen"/>

<asp:Labelrunat="server"foreColor="#0000FF"Font-Size="X-Small" SkinId="LableBlue"/>

利用SkinId属性,为同种类型的控件定义多种不同的外观。

使用主题:

对单个网页设定主题代码:

<%@Page StylesheetTheme="Red"%>

<%@Page Theme="Red" %>

二者是有区别的,我们对某个类型的控件设定外观的时候,可能这个控件本身的属性已经设定。那我们在外观对控件设定的外观会不会覆盖原来这个控件本身的属性呢?例如控件字体颜色属性为红色,我们在外观文件改为蓝色,并使用主题,那字体颜色结果是红色还是蓝色呢?这就说到了StylesheetTheme和Theme的区别,Theme会覆盖本地属性的。

对网站应用主题代码:

唯一不同的是,在配置文件中进行修改:

<configuration>

<system.web>

<pages theme="ThemeName"/>

</system.web>

</configuration>

如果我们同时设定了整个网站的主题,也同时设置了单个页面的主题,则页面主题优先。

禁用主题:

<% @PageEnableTheming="false">

DEMO:

 三个主题页面代码:

Red主题页

<%--为三种类型控件外观--%>

  1. <asp:Labelrunatasp:Labelrunat="server" foreColor="#FF0000"   />
  2. <asp:TextBoxrunatasp:TextBoxrunat="server" foreColor="#FF0000"/>
  3. <asp:Buttonrunatasp:Buttonrunat="server" foreColor="#FF0000"  />

Green主题页

<%--为三种类型控件外观--%>

  1. <asp:Labelrunatasp:Labelrunat="server" foreColor="Green"   />
  2. <asp:TextBoxrunatasp:TextBoxrunat="server" foreColor="Green"/>
  3. <asp:Buttonrunatasp:Buttonrunat="server" foreColor="Green"  />

页面Themes.aspx.cs代码:

  1. public partial class Theme : System.Web.UI.Page
  2. {
  3. //在页开始初始化时发生。
  4. protected void Page_PreInit(object sender, EventArgs e)
  5. {
  6. //当选择下拉列表框中的Blue或Green Red时设置页面的主题。
  7. if (Request["ddlThemes"] != "0")
  8. {
  9. //字符串形式传递页面主题的字符串。
  10. Page.Theme = Request["ddlThemes"];
  11. }
  12. }
  13. }

显示:

Asp.net 主题

主题就像是女孩子漂亮的衣服,而且是一身一身的,不同的女孩子喜欢不同的款式。几乎每个软件都有自己可更换的“衣服”,我们的电脑桌面有主题,office大多数软件有主题设置,我们使用的浏览器有主题等等。主题为各种不同的用户在视觉感观上考虑的更加周到。