次の方法で共有


ツールボックス アイコンと埋め込みリソース

更新 : 2007 年 11 月

このトピックでは、埋め込みリソースを使用して、Windows Presentation Foundation (WPF) コントロール用のカスタム ツールボックス アイコンを指定する方法について説明します。

名前付け規約

ツールボックス アイコンとカスタム コントロールを関連付けるには、次の名前付け規則を使用します。Windows Presentation Foundation (WPF) Designer for Visual Studio は、コントロールのアセンブリ内の埋め込みリソースを調べて、適切な名前の付けられたイメージ ファイルを探します。

最も単純な方法では、コントロールのプロジェクトに埋め込みリソースとしてツールボックス アイコンのイメージを追加します。ControlName.Extension という形式で名前を付けます。WPF デザイナは、コントロールの型名と一致するファイル名を持つリソースを検索します。

次の表は、ツールボックス アイコンとしてサポートされるファイルの種類を示しています。

  • XAML

  • BMP

  • GIF

  • JPG

  • JPEG

  • PNG

詳細については、「チュートリアル : コントロール用のカスタム ツールボックス アイコンの作成」を参照してください。

Cc165608.alert_note(ja-jp,VS.90).gifメモ :

WPF デザイナは、ある照合アルゴリズムを使用して、ツールボックス アイコンに最適なリソースを検索します。リソース ファイルが有効な XAML または有効なイメージ ファイルでない場合は、有効なリソース ファイルが見つかるまで次に一致するリソースが検索されます。XAML イメージに非システム型への参照を含めることはできません。

完全一致名

ツールボックス アイコンの名前付け規則では、完全一致リソース名がサポートされています。完全一致名を使用する場合、Namespace.ControlName.Icon.Extension という規則を使用して、ツールボックス アイコンの名前に名前空間を含めます。たとえば、ProseControl という名前のコントロールが Proseware.Core.Controls 名前空間で定義されているとします。このコントロールの完全一致 PNG ツールボックス アイコン名は、Proseware.Core.Controls.ProseControl.Icon.png となります。

リソースについては、Visual Studio はフォルダを自動的に名前空間に変換します。したがって、名前空間と同じフォルダ構造をプロジェクトに作成できます。埋め込みリソースが存在する名前空間に対してフォルダが影響を与えることに注意してください。前の例では、Icons というサブフォルダにイメージ ファイルがある場合、WPF デザイナは Proseware.Core.Controls.Icons.ProseControl.Icon.png という名前のツールボックス アイコンを検索することになります。

コントロールと同じ名前空間にイメージが見つからない場合、WPF デザイナは不完全一致で検索します。

不完全一致名

WPF デザイナは、完全一致リソースが見つからなかった場合、アセンブリの埋め込みリソース内で不完全一致を検索します。前の例では、WPF デザイナはまず、Proseware.Core.Controls.ProseControl.Icon.Extension という完全一致名を持つファイルを検索します。この検索が失敗すると、WPF デザイナは名前空間を無視し、型名だけに基づいて名前を検索します。この例の場合、WPF デザイナはリソース内で ProseControl.Icon.Extension という名前のすべてのファイルを検索します。この検索が失敗すると、WPF デザイナは既定の名前空間から検索を開始します。この例の場合、WPF デザイナは、Proseware.ProseControl.Icon.Extension という名前のファイルを検索します。

複数のイメージ サイズ

ツールボックス アイコン イメージ ファイル名には、オプションで "Icon" フィールドを含めることができます。この部分文字列を使用することにより、アイコンに対して複数のイメージ サイズを指定できます。

前の例の ProseControl コントロールの場合、WPF デザイナは、リソース内で次のイメージを検索し、最適なサイズのイメージを選択します。

  • Proseware.Core.Controls.ProseControl.Icon.Large.png

  • Proseware.Core.Controls.ProseControl.Icon.Medium.png

  • Proseware.Core.Controls.ProseControl.Icon.ReallyLarge.png

"Icon" の後のピリオドを省略して、次のようなファイル名を使用することもできます。

  • Proseware.Core.Controls.ProseControl.IconLarge.png

  • Proseware.Core.Controls.ProseControl.IconMedium.png

  • Proseware.Core.Controls.ProseControl.IconReallyLarge.png

WPF デザイナは、次の規則に基づいてツールボックス アイコンを選択します。

  1. ベクタ XAML。

  2. 幅も高さも完全に一致するもの。

  3. サイズと縦横比が最も近いもの。

ビットマップ ベースのファイル形式の場合、推奨されるイメージ サイズは 64 ピクセル × 64 ピクセルです。

WPF デザイナと Expression Blend とでは、ツールボックス アイコンに使用されるイメージ サイズが異なります。Expression Blend は、大きいアイコンのサイズに 24 × 24、小さいサイズに 12 × 12 を使用します。WPF デザイナは 16 × 16 を使用します。

ホストで最適とされるサイズが 64 ピクセル × 64 ピクセルで、Proseware.Core.Controls.ProseControl.Icon.Large.png がサイズと縦横比に基づいて最適な一致である場合、このファイルが使用されます。アセンブリ内のすべてのイメージが調べられます。サイズも縦横比も同じイメージが 2 つある場合は、どちらを使用するかはホストが決定します。

参照

処理手順

チュートリアル : コントロール用のカスタム ツールボックス アイコンの作成

その他の技術情報

リソースの使用