リソースの移動、コピー、またはエクスポート
Microsoft Expression Blend アプリケーションでは、リソースはさまざまなスコープで定義できるため、アプリケーションでより広いスコープまたは制限されたスコープでリソースを使用できるようにするために、既存のリソースの移動が必要になることがあります。たとえば、オブジェクト レベルで定義したリソースをアプリケーション全体で使用できるようにする場合は、リソースを App.xaml ファイルに移動します。リソースを別のアプリケーションにエクスポートする場合は、リソースを外部リソース ディクショナリに移動できます。
メモ : |
---|
Silverlight 2 では、リソース ディクショナリはサポートされていません。 |
注意 : |
---|
リソース (スタイルやコントロール テンプレートなど) の中には、追加リソース (ブラシ リソースや色リソースなど) を使用するものがあります。リソースを移動またはコピーする際、移動先またはコピー先のスコープ内でそれらのキー名を解決できない場合、Expression Blend では追加リソースが移動されます。移動先またはコピー先のリソースが重複する名前を持つ場合は、ダイアログ ボックスが表示され、既存のリソースを上書きする、別の名前の新しいリソースを作成して参照を更新する、または既存のリソースを使用するのいずれかを選択できます。 リソースが追加システム リソースを参照している場合、システム リソースは常に使用可能なのでコピーされません。 |
リソースのエクスポート
リソースは、別のプロジェクトにアイテムとして追加できるリソース ディクショナリ ファイルに入れてエクスポートできます。
リソースをエクスポートするには
リソースをエクスポートするためのリソース ディクショナリがない場合は、[リソース] パネルの [新しいリソース] ボタンをクリックします。
[新しいアイテムの追加] ダイアログ ボックスが表示されます。
リソース ディクショナリの名前を入力し、[OK] をクリックします。
[プロジェクト] パネルに新しいリソース ディクショナリが新しいファイルとして追加され、[リソース] パネルにリソースのコンテナとして表示されます。
これで、次の手順を使用して、リソースを新しいリソース ディクショナリに移動できます。さらに、新しいリソースを作成するときに、[新しいリソースの作成] ダイアログ ボックスの [定義元] セクションで新しいリソース ディクショナリを選択できます。
リソースを移動するには
[リソース] パネルで、リソース コンテナ ノードを展開して、移動するリソースを見つけます。
アプリケーション レベルのリソースの一覧は、App.xaml ノードに表示されます。
ディクショナリ レベルのリソースの一覧は、リソース ディクショナリ ファイル名で示されるノードの下に表示されます。
ドキュメント レベルのリソースの一覧は、ドキュメントのルート要素名で示されるノードの下に表示されます (たとえば、[Window1.xaml] を展開し、次に [Window] を展開します)。
オブジェクト レベルのリソースの一覧は、オブジェクト名で示されるノードの下に表示されます。
マウスを使用して、移動するリソースをクリックし、新しい場所までドラッグします。リソースを別のプロジェクトにエクスポートする場合は、リソースをディクショナリ ファイルに移動します。
リソースをコピーするには
[リソース] パネルで、リソース コンテナ ノードを展開して、移動するリソースを見つけます。
アプリケーション レベルのリソースの一覧は、App.xaml ノードに表示されます。
ディクショナリ レベルのリソースの一覧は、リソース ディクショナリ ファイル名で示されるノードの下に表示されます。
ドキュメント レベルのリソースの一覧は、ドキュメントのルート要素名で示されるノードの下に表示されます (たとえば、[Window1.xaml] を展開し、次に [Window] を展開します)。
オブジェクト レベルのリソースの一覧は、オブジェクト名で示されるノードの下に表示されます。
リソース名を右クリックし、[コピー] をクリックします。
リソースのコピー先の場所を右クリックし、[貼り付け] をクリックします。
注意 : 同じプロジェクトに同じ名前のリソースが 2 つある場合、コントロールに間違ったリソースを適用すると、アートボードで予期しない結果が発生することがあります。この問題を避けるために、コピー後に元のリソースまたはコピーしたリソースの名前を変更してください。リソースの名前を変更する方法の詳細については、「リソース名の変更」を参照してください。