1.ASP.NET 主题和外观概述
      外观 级联样式表 主题图形和其他资源
2.主题的应用范围
3.主题设置优先级
4.可以使用主题来定义的属性
5.主题与级联样式表的比较
============================

ASP.NET 主题和外观概述
++++++++++++++++++++++
主题是属性设置的集合,
使用这些设置可以定义页面和控件的外观,
然后在某个 Web 应用程中的所有页、整个 Web 应用程序
或服务器上的所有 Web 应用程中一致地应用此外观。
(如红色主题 黑色主题 就像一个人的着衣风格)

主题由一组元素组成:外观、级联样式表 (CSS)、图像和其他资源。
主题将至少包含外观。
主题是在网站或 Web 服务器上的特殊目录中(App_Themes)定义的。

外观
-----
外观文件具有文件扩展名 .skin,
它包含各个控件(例如,Button、Label、TextBox 或 Calendar 控件)的属性设置。
控件外观设置类似于控件标记本身,
但只包含您要作为主题的一部分来设置的属性。
例如,下面是 Button 控件的控件外观:
<asp:button runat="server" BackColor="lightblue" ForeColor="black" />
(其实就是将某一个控件的相关外观设置 扩充为这类控件的一种外观
好比一个小学生穿这种校服比较好看 那么 这个学校的所有学生都可以穿这种校服
上面的这段代码 如果有ID="Button1"的话 那就是aspx页面的一个控件而已
可以在aspx页面的某个控件设置好相关样式后 去掉ID
然后拉入相关主题下的外观文件.skin中 以充当控件外观的一种设置)

在 theme 文件夹中创建 .skin 文件。
一个 .skin 文件可以包含一个或多个控件类型的一个或多个控件外观。
可以为每个控件在单独的文件中定义外观,也可以在一个文件中定义所有主题的外观。

有两种类型的控件外观 -“默认外观”和“已命名外观”:

当向页应用主题时,默认外观自动应用于同一类型的所有控件。
如果控件外观没有 SkinID 属性,则是默认外观。
例如,如果为 Calendar 控件创建一个默认外观,
则该控件外观适用于使用本主题的页面上的所有 Calendar 控件。
(默认外观严格按控件类型来匹配,
因此 Button 控件外观适用于所有 Button 控件,
但不适用于 LinkButton 控件或从 Button 对象派生的控件。)

已命名外观是设置了 SkinID 属性的控件外观。
已命名外观不会自动按类型应用于控件。
而应当通过设置控件的 SkinID 属性将已命名外观显式应用于控件。
通过创建已命名外观,可以为应用程序中同一控件的不同实例设置不同的外观。

级联样式表
-----------
主题还可以包含级联样式表(.css 文件)。
将 .css 文件放在主题目录中时,样式表自动作为主题的一部分应用。
使用文件扩展名 .css 在主题文件夹中定义样式表。

主题图形和其他资源
------------------
主题还可以包含图形和其他资源,例如脚本文件或声音文件。
例如,页面主题的一部分可能包括 TreeView 控件的外观。
您可以在主题中包括用于表示展开按钮和折叠按钮的图形。

通常,主题的资源文件与该主题的外观文件位于同一个文件夹中,
但它们也可以在 Web 应用程序中的其他地方,
例如,主题目录的某个子文件夹中。
若要引用主题目录的某个子文件夹中的资源文件,
请使用类似该 Image 控件外观中显示的路径:
<asp:Image runat="server" ImageUrl="ThemeSubfolder/filename.ext" />

也可以将资源文件存储在主题目录以外的位置。
如果使用颚化符 (~) 语法来引用资源文件,Web 应用程序将自动查找相应的图像。
例如,如果您将主题的资源放在应用程序的某个子目录中,
则可以使用格式为 ~/SubFolder/filename.ext 的路径来引用这些资源文件,
如下面的代码示例所示。
<asp:Image runat="server" ImageUrl="~/AppSubfolder/filename.ext" />

主题的应用范围
++++++++++++++
您可以定义单个 Web 应用程序的主题,
也可以定义供 Web 服务器上的所有应用程序使用的全局主题。
定义主题之后,
可以使用 @ Page 指令的 Theme 或 StyleSheetTheme 属性将该主题放置在单个页上,
或者可以通过设置应用程序配置文件中的 <pages> 元素将其应用于应用程序中的所有页。
如果在 Machine.config 文件中定义了 <pages> 元素,
则主题将应用于服务器上的 Web 应用程序中的所有页。

页面主题
---------
页面主题是一个主题文件夹,
其中包含控件外观、样式表、图形文件和其他资源,
该文件夹是作为网站中的 \App_Themes 文件夹的子文件夹创建的。
每个主题都是 \App_Themes 文件夹的一个不同的子文件夹。
下面的代码示例演示一个典型的页面主题,
它定义了两个名为 BlueTheme 和 PinkTheme 的主题。
MyWebSite
  App_Themes
    BlueTheme
      Controls.skin
      BlueTheme.css
    PinkTheme
      Controls.skin
      PinkTheme.css

全局主题
---------
全局主题是可以应用于服务器上的所有网站的主题。
当您维护同一个服务器上的多个网站时,可以使用全局主题定义域的整体外观。
全局主题与页面主题类似,因为它们都包括属性设置、样式表设置和图形。
但是,全局主题存储在 Web 服务器的名为 \Themes 的全局文件夹中。
服务器上的任何网站以及任何网站中的任何页面都可以引用全局主题。

主题设置优先级
++++++++++++++
可以通过指定主题的应用方式来指定主题设置相对于本地控件设置的优先级。

如果设置了页的 Theme 属性,
则主题和页中的控件设置将进行合并,以构成控件的最终设置。
如果同时在控件和主题中定义了控件设置,
则主题中的控件设置将重写控件上的任何页设置。
即使页面上的控件已经具有各自的属性设置,
此策略也可以使主题在不同的页面上产生一致的外观。
例如,它使您可以将主题应用于在 ASP.NET 的早期版本中创建的页面。

此外,也可以通过设置页面的 StyleSheetTheme 属性将主题作为样式表主题来应用。
在这种情况下,本地页设置优先于主题中定义的设置(如果两个位置都定义了设置)。
这是级联样式表使用的模型。
如果您希望能够设置页面上的各个控件的属性,
同时仍然对整体外观应用主题,则可以将主题作为样式表主题来应用。

可以使用主题来定义的属性
+++++++++++++++++++++++++
通常,可以使用主题来定义与某个页或控件的外观或静态内容有关的属性。
只能设置那些其 ThemeableAttribute 属性 (Attribute) 设置为 true(在控件类中)的属性 (Property)。

显式地指定控件行为而不是指定外观的属性不接受主题值。
例如,不能使用主题来设置 Button 控件的 CommandName 属性。
同样,不能使用主题来设置 GridView 控件的 AllowPaging 属性或 DataSource 属性。

主题与级联样式表
+++++++++++++++++
主题与级联样式表类似,因为主题和样式表均定义一组可以应用于任何页的公共属性。
但是,主题与样式表在下列方面不同:

主题可以定义控件或页的许多属性,而不仅仅是样式属性。
例如,使用主题,可以指定 TreeView 控件的图形、GridView 控件的模板布局,等等。

主题可以包括图形。

主题层叠的方式与样式表不同。
例如,除非您显式地将主题作为样式表主题来应用,否则默认情况下属性值会重写本地属性值。

每页只能应用一个主题。
不能向一页应用多个主题,这与样式表不同,样式表可以向一页应用多个样式表。

转载于:https://www.cnblogs.com/freeliver54/archive/2007/01/20/625462.html

[引]VS2005 主题(Theme)和外观(skin)帮助文档:主题和外观概述相关推荐

  1. R语言ggplot2可视化设置不同的图像主题(theme):使用各种不同的主题(theme)可视化数据、单的黑白主题theme_bw主题(theme)、默认的主题(theme)可视化数据

    R语言ggplot2可视化设置不同的图像主题(theme):使用各种不同的主题(theme)可视化数据.单的黑白主题theme_bw主题(theme).默认的主题(theme)可视化数据 目录

  2. 抽取文档主题之gensim实现

    抽取文档主题之gensim实现 示例代码: import jieba import pandas as pd from gensim import corpora, models from gensi ...

  3. 抽取文档主题之sklearn实现

    抽取文档主题之sklearn实现 示例代码: import pandas as pd raw = pd.read_table('../data/金庸-射雕英雄传txt精校版.txt', names=[ ...

  4. LDA模型,获取所有的文档-主题分布(即得到文档对于每个主题的概率分布)并保存

    前言:写小论文用到lda主题模型,需要得到所有的文档-主题分布.现有的只是为文档输出前几个概率大的主题 代码: import numpy as np from gensim.models import ...

  5. Manim文档及源码笔记-CE文档-主题化指南3渲染文本和公式

    Rendering Text and Formulas 渲染文本和公式 有两种不同的方式可以在视频中渲染文本: 1.使用Pango(text_mobject) 2.使用乳胶(tex_mobject) ...

  6. 修改 Doxygen 主题,生成 Qt 风格的文档

    文章目录 背景 切换 doxygen 主题风格(例子) 开源项目提交(实战) 推荐 系列地址: 简 述: 在 上一篇 中,成功自定义 .qch 文档手册在 Qt Assistants 中查看.但 Do ...

  7. 主题(Theme)与皮肤(Skin)

    在ASP.net 2.0之后便引入了主题(Theme)的概念,将CSS文件并入到主题的统一概念中,也不需要通过<link>标记来引入CSS文件了,下面先来看一看主题的使用实例: 第一步:在 ...

  8. LDA主题模型绘制困惑度(perplexity)-主题数曲线——python

    主题建模作为一种基于机器学习的文本内容分析技术,一般用于推断文本文档中隐藏主题的技术.很多研究使用了基于Latent Dirichlet Allocation (LDA)的主题建模算法来处理大规模文档 ...

  9. 通过模板页master page和主题theme来实现网站的风格切换

    Web站点风格切换的实现 引言 Web站点的风格切换是很常见.也很受大家欢迎的功能,比如大家熟知的博客园就提供了几十款风格模板供大家选择.在Asp.Net中,我们可以通过模板页master page和 ...

  10. tailwindcss 官网(六)定制:配置( `tailwind.config.js `、-p、important、核心插件、`resolveConfig`)、主题 `theme` 配置

    tailwindcss 官网(六)定制:配置( tailwind.config.js.-p.important.核心插件.resolveConfig).主题 theme 配置 文章目录 tailwin ...

最新文章

  1. 创业-程序员独自5大思维障碍
  2. LeetCode 1276. 不浪费原料的汉堡制作方案(解方程)
  3. 虚拟机VMware Workstation安装Linux服务器Debian11系统详细教程
  4. javaEE开发中使用session同步和token机制来防止并发重复提交
  5. Android短信拦截代码
  6. 实现顺序表各种基本运算的算法
  7. CSS复合选择器---后代选择器、子选择器、并集选择器、伪类选择器
  8. 从dom4j到JAXB
  9. JMSMQ系列之JMS的请求和回应
  10. 解决电脑浏览器打不开网页问题
  11. Android usb otg通讯总结 HiD通讯直接来取吧
  12. c语言医生值班题目讲解,C趣味程序百例(17)哪个大夫哪天值班
  13. 用函数求斐波那契数列前n项和
  14. 《Simulating Knitted Cloth at the Yarn Level》论文笔记
  15. CSS样式:渐变色圆角边框
  16. 老牌系统:雨一直下win7主题
  17. 大一计算机应用基础实验指导,大学计算机应用基础实验指导详解.doc
  18. 流水灯实验报告c语言,PLC流水灯实验报告.pdf
  19. 疯狂英语学习者的经典名句
  20. RandomAccessFile实现文件分割、合并

热门文章

  1. IT Library第4期《备份域升为主域控制器》
  2. 【Oracle】解决问题:pl/sql developer 小钥匙图标下拉框中oracle连接串不加粗显示
  3. 牛逼!用 MySQL 实现一个分布式锁,这也太强了。。。
  4. 还在为生产环境中用什么样的 Kubernetes 架构困惑吗,或许看完这篇你的问题就迎刃而解了!...
  5. 特斯拉,谁给你的勇气在中国玩双标
  6. mysql基础之数据库变量(参数)管理
  7. gradle脚本源码查看环境搭建
  8. Django的cmdb探索与开发(三)
  9. 农银电商项目学习笔记(一)
  10. How to study Watir?