65.9K
CodeProject 正在变化。 阅读更多。
Home

主题

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

2分钟阅读

viewsIcon

9772

Asp.net 2.0 引入了一个名为主题的新特性。主题是一组属性设置的集合,允许您定义页面和

Asp.net 2.0 引入了一个名为主题的新特性。主题是一组属性设置的集合,允许您定义页面和控件的外观,然后在 Web 应用程序中的页面、整个 Web 应用程序或服务器上的所有 Web 应用程序中一致地应用该外观。

主题由一组元素组成:皮肤、级联样式表 (CSS)、图像和其他资源。皮肤提供了在服务器端对控件应用样式的能力。通过为皮肤提供 SkinID,可以将该皮肤应用于与皮肤类型和 SkinID 匹配的控件;否则,如果 SkinID 为空,则该皮肤将全局应用。例如,请查看下面的示例

 <asp:Button SkinID="One" runat="server" BackColor="Blue" />

此皮肤应用于所有具有 SkinID 为“One”的按钮。但是,以下皮肤应用于每个按钮

<asp:Button runat="server" BackColor="Yellow" />

设置了 SkinID 的按钮将使用该皮肤,而不是全局应用的皮肤。主题至少包含皮肤,但通常也包含 CSS 文件。主题在网站或 Web 服务器上的特殊目录中定义。您也可以动态应用主题,但主题应仅在 page_Preinit 事件中通过将值分配给 Page.Theme 属性来应用。

您还可以通过将第三方控件添加到 .skin 文件并添加(如果需要)其引用来主题化第三方控件。

最佳实践

何时使用主题/皮肤

  • CSS 无法控制前景色图像
  • 必须手动应用 CSS 类才能更改控件的外观。
  • 用于高级控件和集合
  • 根据当前主题切换图像文件

主题包含的内容

  • 特定于 ASP.NET 控件的 CSS 文件
  • 用于高级控件或其他前景色图像的图像

主题不包含的内容

  • 共享 CSS 文件/样式
  • 打印 CSS 文件/样式
  • 全局图像
  • 与主题/皮肤受影响的内容无关的任何内容

白皮书/博客

视频

  • 使用配置文件和主题自定义我的站点?
© . All rights reserved.