2011-01-24 11 views
6

Silverlightアプリケーションでは、App.xaml内のリソースを定義し、明示的にそれらのリソースをマージする必要なく、任意のXAMLドキュメントからリソースにアクセスできます。クラスライブラリ内のグローバルリソース

クラスライブラリに対応するソリューションはありますか? クラスライブラリに別のリソースディクショナリを作成しましたが、使用するには次のようにマージする必要があります。

<UserControl.Resources> 
<ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="MyResources.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 
</UserControl.Resources> 

これを回避する方法はありますか?グローバルに使用されているリソースのすべてのXAMLドキュメントでこれを行うのはやや面倒です。

答えて

1

私はこの同じ質問をしようとしていました。残念ながら、あなたが説明したことは、私が思いついたことにかなり近いものです。理論的には、これらをライブラリのthemes \ generic.xamlファイルに入れることができるはずですが、私はその作業を行うことができませんでした。おそらく私は骨抜きにしています。私が行うことができました最高のは、あなたがMergedDictionaries構文を除外するために、つまり、何をやっているのわずかに短い変種です:

<UserControl.Resources> 
    <commonui:CommonStringsPublic x:Key="commonStrings" /> 
    <ResourceDictionary Source="/Alanta.Client.UI.Common;component/CommonResources.xaml" x:Key="commonResources" /> 
</UserControl.Resources> 

私は誰かがより良いに私を指す持ってみたいですソリューション:-)。

+0

私はそれが得られるほど良いと思います..ありがとう! それと同時に、これと他の共通コード(xmlnsディレクティブなど)を追加するユーザーコントロールを作成するためのビジュアルスタジオテンプレートも作成しました。 –

関連する問題