次の方法で共有


デバイス フィルタの概要

デバイス フィルタを使用すると、コントロールの外観を特定のハードウェア デバイス向け、または特定のデバイス カテゴリ向けにアプリケーションでカスタマイズできます。カスタマイズはアプリケーションの閲覧に使用されるハードウェア デバイスの機能に基づいて行います。

たとえば、ビットマップ (.bmp) イメージをサポートする特定のブランドのハンドヘルド デバイスに使用されるアプリケーションを開発する場合について考えてみます。このデバイスに、テキストと .bmp ファイル アイコンの両方で List コントロールの項目をすべて表示するとします。デバイス フィルタを使用することで、ターゲットのハンドヘルド デバイスから送られてくる要求をアプリケーションで検出できます。検出できることで、テキストとアイコンの両方を使用して項目を表示するデバイス固有のテンプレートを、アプリケーションは使用できるようになります。このテクニックにより、特定のハードウェア デバイス向けにアプリケーションをカスタマイズできます。

さらに、.gif イメージを表示するデバイスでもこのアプリケーションを利用できるようにするとします。アプリケーションでは、このようなデバイスから要求が送られたことを検出するデバイス フィルタを適用できます。この場合、プログラムは、テキストと、そのアイコンに .bmp イメージではなく .gif イメージを使用して一覧の項目を表示するテンプレートを指定します。これは、あるデバイス カテゴリ向けにアプリケーションをカスタマイズしたことになります。

デバイス フィルタで実現できるその他のタスクには、次のようなものがあります。

  • デバイスの種類に基づくスタイルの選択。

  • 豊富な表現方法を備えたコントロールを、それをサポートするデバイス上にレンダリング。

  • 表示機能が限られたデバイス向けの単純な表現方法を使用したコントロールのレンダリング。

Visual Studio では、デバイス フィルタがアプリケーションの Web.config ファイルにある <deviceFilters> セクションに格納されます。

デバイス フィルタを定義していれば、アプリケーションはそのデバイス フィルタを ASP.NET モバイル コントロールに適用して、デバイス固有のレンダリングを提供できます。デバイス フィルタは、コンテナ コントロールには適用できません。ただし、Form コントロールや Panel コントロールに DeviceSpecific コントロールをアタッチすることで、コンテナ コントロールと関連付けられます。デザイナは、このように適用されたフィルタをコンテナ コントロールに関連付けられた <DeviceSpecific> マークアップ言語タグに変換します。

ASP.NET モバイル コントロールは、2 種類のデバイス フィルタをサポートしています。1 つは、比較型フィルタと呼ばれるもので、指定した値とデバイス機能の現在の値とが比較されます。比較型フィルタは、デバイスが特定の機能をサポートするかどうかを判断する場合に使用します。

もう 1 つのデバイス フィルタは、エバリュエータ、またはデリゲート型のデバイス フィルタと呼ばれるものです。このフィルタは、評価を実行するために、作成したクラスのメソッドを呼び出します。検証コントロール フィルタは、比較型フィルタでは実現できない複雑なデバイス フィルタリングを行う必要がある場合に使用します。

アプリケーションでは、フィルタの検証用メソッドを、別のアセンブリ、またはコード分離ページのどちらかに定義できます。分離コード ファイルでメソッドを使用するデバイス フィルタは、アプリケーションの Web.config 構成ファイルでは宣言できません。分離コード ページでメソッドを定義する場合は、System.Web.UI.MobileControls.MobilePage クラスから派生したページでそのメソッドを定義する必要があります。

参照

処理手順

デバイス フィルタの構成

概念

デバイス フィルタの定義

デバイス フィルタの適用

プロパティのオーバーライド

デバイス固有のレンダリング

その他の技術情報

特定のデバイスを対象とした ASP.NET モバイル Web コントロールのカスタマイズ

コントロール テンプレートを使用したカスタマイズ