プロジェクトのコントロールにスキンを作成する

コントロールの外観をカスタマイズするには、静的リソースを使用して、コントロールに適用するテンプレートを定義します。たとえば、ボタンの外観をデザインするときに、四角形の代わりに、画像を使用したボタンのテンプレートを作成することができます。

各種のコントロール テンプレートやユーザー コントロールの外観を揃えるには、個々のプロパティを静的リソースに変換し、それらをテンプレートやユーザー コントロールに適用します。たとえば、ボタン テンプレートの境界色をリソースに変換し、チェック ボックス テンプレートやカスタム ユーザー コントロールの境界プロパティにその色リソースを適用できます。

これらのテンプレートとリソースを他のプロジェクトで再利用するには、リソースをリソース ディクショナリ ファイルに移動し、そのファイルを他のプロジェクトに追加します。リソース ディクショナリ ファイルが、アプリケーションのスキンのリポジトリになります。

コントロールのテンプレートを作成するには

ユーザー コントロールを作成するには

プロパティを静的リソースに変換するには

  1. アートボード上で、他のコントロールで再利用するプロパティ値を持つオブジェクトを選択します。

  2. [プロパティ] パネルの [プロパティ] ビュー Dd185519.cee1494c-ef95-4dd4-9fbc-9d02edfa78b7(ja-jp,Expression.40).png で、再利用するプロパティを見つけます。

    tip noteヒント :

    [プロパティ] パネルの [検索] ボックスにプロパティ名の一部を入力すると、プロパティをすばやく見つけることができます。

    Dd185519.a1e4026a-4e48-4f0c-8898-3783121e57fa(ja-jp,Expression.40).png

    入力した文字を含むプロパティだけが一覧表示されます。

    Dd185519.c286ad76-70a6-41f7-bed6-d6d4ad69e549(ja-jp,Expression.40).png

    [プロパティ] パネルを元の状態に戻すには、[検索] ボタンの横にある [クリア ] Dd185519.1d1f5548-6c7a-46bd-9d93-591edc576888(ja-jp,Expression.40).png をクリックします。

  3. 次のいずれかの操作を行います。

    • [ブラシ] を再利用する場合は、ブラシのプロパティ (Fill プロパティや Background プロパティなど) の横にある [詳細オプション] Dd185519.12e06962-5d8a-480d-a837-e06b84c545bb(ja-jp,Expression.40).png をクリックして、[新しいリソースに変換] をクリックします。

    • ブラシに適用されている色を再利用するには、[単色ブラシ] Dd185519.3a66ec96-47bb-47fc-8876-6b9456feec3a(ja-jp,Expression.40).png の場合はそのブラシを選択します。[グラデーション ブラシ] Dd185519.91fb0c61-7b3b-4ae7-8a59-760e625e3bd7(ja-jp,Expression.40).png の場合は、使用する色のグラデーションの分岐点 Dd185519.a3c9e482-e99b-4504-8a02-9507487d1791(ja-jp,Expression.40).png を選択します。次に、[色をリソースに変換] Dd185519.6bf68607-add8-4d87-b6f4-100c8f05dd17(ja-jp,Expression.40).png をクリックします。

      Dd185519.89203705-cf66-46e0-b153-52a23cd744f7(ja-jp,Expression.40).png

    • 数値や他の種類の値を再利用する場合は、再利用するプロパティの横にある [詳細オプション] ボタン Dd185519.12e06962-5d8a-480d-a837-e06b84c545bb(ja-jp,Expression.40).png をクリックし、[新しいリソースに変換] をクリックします。

      Dd185519.3f69215a-f522-4347-88fb-f6b219f5419e(ja-jp,Expression.40).png

  4. 表示された [<種類> リソースの作成] ダイアログ ボックスで、リソースにわかりやすい名前を付けて [OK] をクリックします。

    リソースが作成され、[リソース] パネルに表示されます。

    Dd185519.97203920-a26b-4bb5-b0ed-9c71ae6973d3(ja-jp,Expression.40).png

    作成したリソースを変更する方法については、「リソースの変更」を参照してください。

リソースを別のプロパティに適用するには

リソースをプロパティに適用するにはさまざまな方法があります。

[リソース] パネルからドラッグしてリソースを適用するには

  1. [リソース] パネルから、リソースをアートボード上のコントロールにドラッグします。

    フォント ファミリ リソースをチェック ボックス コントロールにドラッグします。

    Dd185519.8290ff37-d8e8-479f-89f3-a04118ab186b(ja-jp,Expression.40).png

  2. 表示されたポップアップ メニューで、リソースの適用先となるコントロールのプロパティを選択します。

    フォント ファミリ リソースをチェック ボックスの FontFamily プロパティに適用します。

    Dd185519.2063f03b-e8ad-46cb-9f12-7898b6bc1f43(ja-jp,Expression.40).png

[詳細オプション] メニューを使用してリソースを適用するには

  1. [プロパティ] パネルの [プロパティ] ビュー Dd185519.cee1494c-ef95-4dd4-9fbc-9d02edfa78b7(ja-jp,Expression.40).png で、リソースに設定するプロパティを見つけます。

  2. [詳細オプション] Dd185519.12e06962-5d8a-480d-a837-e06b84c545bb(ja-jp,Expression.40).png をクリックして [ローカル リソース ] をポイントし、表示されたドロップダウン リストでリソース名を選択します。

ブラシ リソースを適用するには

  1. [プロパティ] パネルの [プロパティ] ビュー Dd185519.cee1494c-ef95-4dd4-9fbc-9d02edfa78b7(ja-jp,Expression.40).pngで、リソースに設定するブラシを選択します

  2. [ブラシ リソース] タブ Dd185519.415db740-5a54-48d2-8678-245ccfa7ee8b(ja-jp,Expression.40).png で、リソースの名前を選択します。

    Dd185519.af28e5e4-4861-45ac-b02d-e65386520ed7(ja-jp,Expression.40).png

色リソースを適用するには

  1. [プロパティ] パネルの [プロパティ] ビュー Dd185519.cee1494c-ef95-4dd4-9fbc-9d02edfa78b7(ja-jp,Expression.40).png で、リソースに設定する色のブラシを選択します。[グラデーション ブラシ] Dd185519.91fb0c61-7b3b-4ae7-8a59-760e625e3bd7(ja-jp,Expression.40).png の場合は、目的の色のグラデーションの分岐点 Dd185519.a3c9e482-e99b-4504-8a02-9507487d1791(ja-jp,Expression.40).png を選択します。

  2. [色リソース] タブで、リソースの名前を選択します。

    Dd185519.5cb88f90-c17a-4dad-be87-b6be7d74f410(ja-jp,Expression.40).png

テンプレートを同じ種類の別のコントロールに適用するには

コントロールにテンプレートを適用するには、さまざまな方法があります。

[アセット] パネルでテンプレートを選択して新しいコントロールに適用するには

  1. [ツール] パネルの [アセット] Dd185519.0d8b8d29-1af9-418f-8741-be3097d76eab(ja-jp,Expression.40).png をクリックします。

  2. [アセット] パネルの [スタイル] カテゴリで、作成済みのテンプレートを選択します。

  3. アートボードで、ポインターを使用して境界ボックスを描きます。

    選択したテンプレートと同じ新しいコントロールが描画され、テンプレートが自動的に適用されます。

[リソース] パネルからドラッグしてテンプレートを適用するには

  1. [リソース] パネルから、テンプレート リソースをアートボード上のコントロールにドラッグします。

  2. 表示されたドロップダウン メニューで、[スタイル] プロパティを選択します。

[詳細オプション] メニューを使用してテンプレートを適用するには

  1. テンプレートを適用するオブジェクトを選択します。

  2. [プロパティ] パネルの [プロパティ] ビュー Dd185519.cee1494c-ef95-4dd4-9fbc-9d02edfa78b7(ja-jp,Expression.40).png で、[Style] プロパティを見つけます。

  3. [Style] プロパティの横にある [詳細オプション] Dd185519.12e06962-5d8a-480d-a837-e06b84c545bb(ja-jp,Expression.40).png をクリックして [ローカル リソース] をポイントし、表示されたドロップダウン リストで目的のテンプレートの名前を選択します。

リソースを App.xaml ファイルに移動するには

  • リソースの作成時にリソースを App.xaml ファイルに定義しなかった場合、リソースを [リソース] パネルにドラッグすることによって、App.xaml ファイルに移動できます。

    tip noteヒント :

    リソースが見当たらない場合は、ドキュメント ノード (通常は Page.xaml) の下のノードを展開すると見つかることがあります。

リソースを別のプロジェクトにコピーするには

  1. [プロパティ] パネルで、App.xaml ファイルをダブルクリックし、アートボードに開きます。

  2. App.xaml ファイルは [デザイン] ビューには表示されないため、アートボードの右側で [XAML] タブをクリックします。

  3. リソースは、<Application.Resources> タグの間で定義されています。

    <Application.Resources>
    </Application.Resources>
    

    このタグの内側にあるプロパティ リソースの定義には、そのプロパティの種類を表すタグが付いています。Key 属性は、リソースに付けた名前を表します。

      <FontFamily x:Key="ApplicationFont">Segoe UI</FontFamily>
      <LinearGradientBrush x:Key="BorderBrush" EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#FF000000"/>
        <GradientStop Color="#FFC64545" Offset="1"/>
      </LinearGradientBrush>
    

    テンプレートは、<Style> タグの間で定義されています。Key 属性は、テンプレートに付けた名前を表します。

      <Style x:Key="ImageButton" TargetType="Button">
        <Setter Property="Background" Value="#FF1F3B53"/>
        <Setter Property="Template">
          ...
        </Setter>
      </Style>
    
  4. 別のプロジェクトに移動するリソースを表す XAML を強調表示し、Ctrl キーを押しながら C キーを押します。リソースがコピーされます。

  5. Expression Blend で別のプロジェクトを開き、アートボードの [XAML] ビューに App.xaml ファイルを表示します。<Application.Resources> タグのすぐ後ろにポインターを置き、Ctrl キーを押しながら V キーを押します。リソースが、ポインターを置いた場所に貼り付けられます。

  6. 既存のリソースに、重複しているキー名がないことを確認します。

  7. Ctrl + Shift + B キーを押してプロジェクトをビルドし、新しいリソースが正しくコピーされていることを確認します。

    tip noteヒント :

    または、App.xaml ファイルを丸ごと新しいプロジェクトにコピーし、x:Class 属性内の名前を新しいプロジェクトの名前に変更する方法もあります。

    <Application

    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"

    x:Class="ProjectName.App" ...

次のステップ

関連項目

概念

一般的な Silverlight コントロールのスタイル処理のヒント
WPF 簡易スタイルのスタイル処理のヒント

Copyright ©2011 by Microsoft Corporation. All rights reserved.