来自asp.net的.skin vs .css

sel*_*raj 13 asp.net theming

asp.net .skin.cssasp.net 之间的主要区别是什么?

.skin是IDE的新增强功能.我一直在和你一起工作.css.可用的.skin是不是.css

谢谢,saj

A_N*_*lsi 20

在skin文件中,您可以设置asp.net控件的属性.

例如,

<asp:TextBox runat="server" Width="200"/>
Run Code Online (Sandbox Code Playgroud)

应用程序中的所有TextBox控件的宽度都为200.

你可以给它一个名字,只有你喜欢的控件可以设置它们来应用皮肤,例如,

<asp:TextBox SkinID="MultiLineTextBox" runat="server" TextMode="MultiLine" Height="240"/>
Run Code Online (Sandbox Code Playgroud)

现在在添加TextBox控件的网页中,您可以将其SkinID设置为"MultiLineTextBox",如下所示,

<asp:TextBox runat="server" SkinID="MultiLineTextBox"/>
Run Code Online (Sandbox Code Playgroud)

因此它将TextMode继承为MultiLine,Height继承为240.

要使用皮肤,您必须在App_Themes文件夹下为您的应用程序添加一个主题,然后在那里添加皮肤文件,现在要在您的页面中使用此主题,您必须将页面的EnableTheming属性设置为true,StylesheetTheme或Theme to你主题的名字.您还可以在配置文件中设置此属性.

在页面aspx中设置主题,

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" EnableTheming="true" StylesheetTheme="Your Theme Name" %>
Run Code Online (Sandbox Code Playgroud)

在web.config中设置主题,

<configuration>
   <system.web>
     <pages styleSheetTheme="Your Theme Name"></pages>
   </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)


Kit*_*oed 7

请注意,就这两件事实际做的而言,存在相当大的差异..skin文件中设置的任何属性都将复制到所有页面控件.使用层叠样式表的一个优点是信息被加载和缓存一次.(并且可以应用于多个网页.)外观文件可能导致页面膨胀,因为每次呈现页面时,外观文件中设置的所有属性都必须与每个受影响的控件合并.

此外,ASP.NET主题.skin文件的默认行为是覆盖受影响的控件的属性(这可能是一个意外的行为).例如,如果Width为文件中的所有ASP:标签设置属性.skin,则使用外观文件的所有ASP:标签的Width属性都将设置为.skin文件的属性,而不管控件的个别Width设置如何.若要避免此行为,ASP.NET StyleSheetTheme可用于允许控件级属性覆盖全局.skin属性.