カスタム スキンを作成する場合、次の 2 つの作業を行う必要があります。
- 使用するすべてのリソースを宣言します。
- スキンを登録します。
埋め込みリソースや Web リソースに慣れていない場合は、次の記事から始めることをお勧めします。
- 一般的な組み込みリソースに関する記事 -- http://www.codeproject.com/Articles/3089/Understanding-Embedded-Resources-in-Visual-Studio
- Web リソースに関する記事 -- http://www.codeproject.com/Articles/12997/WebResource-ASP-NET-2-0-explained
リソースの宣言
Web リソースについて同じページにいるので、始めましょう。
記事に記載されているように、完全修飾リソース名はDefaultNameSpace です。[Path.To.File.]ファイルへのパスを指定した.FileNameはオプションです。たとえば、すべてのファイルをプロジェクトのルートに配置できます。
スキン アセンブリ プロジェクトのデフォルトの名前空間は、右クリック -> プロパティ メニューから利用できます。
フォルダー パスは省略可能ですが、1 つのアセンブリで複数のスキンを処理するのに役立つため、あると便利です。スキン名が「TelerikYouthful」であるとすると、プロジェクトのルートに「TelerikYouthful」という名前のフォルダーが必要です。
その中に、「Window.TelerikYouthful.css」という名前のファイルが必要です。ファイルを追加するときは、適切なビルド タイプを設定してください: 右クリック -> プロパティ、ビルド タイプを埋め込みリソースに設定します。
これら 2 つの設定が完了したら、リソースを宣言します。繰り返しますが、単一のファイルを使用できますが、個別に使用することをお勧めします。プロジェクトのルートで、ファイルRadWindow.Skins.csを作成します。
その中に次の行を追加します。
using System.Web.UI;
#region TelerikYouthful
[assembly: WebResource("CustomSkinAssembly.TelerikYouthful.Window.TelerikYouthful.css", "text/css", PerformSubstitution = true)]
#endregion
毎回 System.Web.UI.WebResource を書き込まないように、使用が必要です。次に、完全修飾リソース名が続きます。デフォルトの名前空間はCustomSkinAssemblyです。私のパスはTelerikYouthful、ファイル名はWindow.TelerikYouthful.cssです。
型文字列は明らかです。
CSS ファイル内の Web リソースを参照できるように、置換を実行する必要があります。
今すぐプロジェクトをビルドし、Reflector、JustDecompile、DotPeek などのツールを使用して出力 DLL をチェックして、ファイルが実際に埋め込まれているかどうかを確認できます。
スキンの登録
次に、スキンを登録する必要があります。これを行うには、デフォルトの名前空間で、スキンを適用するコントロールのクラスを追加し、そのクラスに EmbeddedSkin 属性で注釈を付ける必要があります。
using System.Web.UI;
using Telerik.Web;
#region TelerikYouthful
[assembly: WebResource("CustomSkinAssembly.TelerikYouthful.Window.TelerikYouthful.css", "text/css", PerformSubstitution = true)]
#endregion
namespace CustomSkinAssembly
{
[EmbeddedSkin("Window", "TelerikYouthful", typeof(RadWindow))]
public class RadWindow
{
}
}
注: Telerik.Web の使用を追加したので、常に Telerik.Web.EmbeddedSkin を使用しているわけではありません。
これでプロジェクトをビルドできるようになり、スキンを使用できるようになります。