ASP.NET 2.0 には、Web サイトのスキンを簡単に作成できる新しいテーマ機能があります。
テーマの実装には、CSS、スキン、マスターページが含まれます。
CSS は、すべての HTML タグの外観を制御するために使用されます。
スキンは、すべての ASP.NET サーバー調整の外観を制御するために使用され、その CSS スタイルは属性 cssClass を通じて定義できます。
MasterPage は *.aspx ページ テンプレートですが、テーマでは定義されていません。
-------------------------------------------------- ----------------------------------
・テーマの作成例:
1. Webプロジェクト内にApp_Themesディレクトリを作成します。これは事前定義されたディレクトリであり、ASP.NET 2.0 はそのディレクトリ内のテーマを自動的に認識します。
2. App_Themes ディレクトリに、orangeTheme と BlueTheme という 2 つのサブディレクトリを作成します。
3. Control.Skin などのスキン ファイルを App_Themes の下の各サブディレクトリに追加します。 ASP.NET 2.0 は各スキン ファイルを自動的に分析します。ここでの名前付けは、開発中の分類に便利であれば十分です。
4. App_Themes の下の各サブディレクトリに CSS ファイルを追加することもできます。 ASP.NET 2.0 では、このスタイルを使用するすべてのページにすべての CSS ファイルが自動的に追加されます。
·ページ コンテンツとテーマ スタイルを定義します
。 1.default.aspx ページ定義は次のとおりです:
<%@ Page Theme="OrangeTheme" %>
<html>
<head runat="サーバー">
<title>オレンジページ</title>
</head>
<本文>
<form id="form1" runat="server">
あなたの名前を入力してください:<br />
<asp:TextBox ID="txtName" Runat="サーバー" />
<br /><br />
<asp:Button ID="btnSubmit" Text="送信名" Runat="サーバー"/>
</form>
</body>
</html>
2. OrangeTheme ホームページの Control.Skin ファイルに次のように定義します。
注: 指定できるのは外観属性のみであり、AutoPastback などの属性は指定できません。
デフォルトの名前のないスキンは、すべての TextBox タイプのスキンを定義します。
<asp:TextBox BackColor="Orange" ForeColor="DarkGreen" Runat="サーバー" />
<asp:Button BackColor="Orange" ForeColor="DarkGreen" Font-Bold="True" Runat="Server" />
名前付き SkinID を指定すると、指定した TextBox タイプの外観が定義されます。
<asp:TextBox SkinID="Title" BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />
·ページでテーマを使用する
1. Aspx ファイルの先頭に Theme="Default を追加します。<%@ Page %> " 属性。このようにして、デフォルトのテーマを使用できます。
2. 特定のテーマを Web サイト全体に適用したい場合は、Web.Config で定義する必要があります。
<構成>
<システム.ウェブ>
<pages テーマ="オレンジのテーマ" />
</system.web>
</configuration>
このような定義は、すべての Web サイト ファイルのデフォルトのテーマと同等です。テーマは、使用時にもページごとに定義できます。
スキン パーツはページで定義されたテーマを使用し、CSS はデフォルトのホームページの CSS スタイル シートをオーバーライドします。
3. テーマを指定すると、すべての外観でスキンで定義されたものが使用されます。コントロールの SkinID を指定して、個々のスキンを定義することもできます。
4. テーマをプログラムで定義する場合は、次のように Page_PreInit イベントで処理する必要があります。
void Page_PreInit(object sender, EventArgs e)
{
Page.Theme = Request["ThemeName"];
Page の MasterPage ファイルをプログラムでロードする必要がある場合は、ここでも定義する必要があります。
this.MasterPageFile = Request["MasterPageFile"];
、
Web サイトの汎用性が高まります。