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