0

カスタム スキンを dll に保存しようとしています。それを使用して、プロジェクトのテレリック コントロールのテーマを設定します。私はこのガイドに従って、カスタム スキンを取得して、dll から radWindow コントロールのテーマを設定することに成功しました。

ID='ctl00' の Telerik.Web.UI.RadTabStrip は、'TelerikYouthful' という名前の埋め込みスキンを見つけることができませんでした。スキン名のスペルが正しいこと、およびプロジェクトに Telerik.Web.UI.Skins.dll アセンブリへの参照が追加されていることを確認してください。カスタム スキンを使用する場合は、EnableEmbeddedSkins=false を設定します。

ガイドで言及されているこの行の下の最初のパラメーターに何を入力すればよいかわかりません

[Telerik.Web.EmbeddedSkin("ウィンドウ", "BlackAndRed", typeof(RadWindow))]

誰でもこれを行う正しい方法を教えてもらえますか?

4

1 に答える 1

1

カスタム スキンを作成する場合、次の 2 つの作業を行う必要があります。

  1. 使用するすべてのリソースを宣言します。
  2. スキンを登録します。

埋め込みリソースや Web リソースに慣れていない場合は、次の記事から始めることをお勧めします。

  1. 一般的な組み込みリソースに関する記事 -- http://www.codeproject.com/Articles/3089/Understanding-Embedded-Resources-in-Visual-Studio
  2. 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 を使用しているわけではありません。

これでプロジェクトをビルドできるようになり、スキンを使用できるようになります。

于 2013-01-25T13:17:16.573 に答える