26

アプリケーション全体で使用する必要があるすべてのスタイルを持つ MergedDictionaries.SharedStyles プロジェクトを参照しようとしています。ここでは、リソース辞書としてさまざまなフォルダーの下にさまざまなスタイルがあります。最後に、それらを AllSharedStyles.xaml にマージし、それを Styles プロジェクト レベルにしました。

これで、AllSharedStyles.xaml リソース ディクショナリ <<>> を参照するソリューション レベル <> に別の ResourceDictionary ができました。この ResourceDictionary は、ソリューション内のすべてのモジュールへのリンクとして追加されます。

ここでの問題は、私の SharedResourceDictionary では、次の MergedDictionaries を持っています

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/MergedDictionaries.SharedStyles;component/AllSharedStyles.xaml" />
    <ResourceDictionary Source="/View/LocalResource.xaml" /> 
</ResourceDictionary.MergedDictionaries>

プロジェクトのアーキテクチャ

モジュール固有のスタイルをオーバーライドする (必要な場合のみ) ために、最初に共通リソースを参照し、次にローカルを参照しました。

今私がアプリケーションを実行すると文句を言う

'Set property 'System.Windows.ResourceDictionary.Source' threw an exception.' Line number '5' and line position '10'.

それがエラーメッセージです。

私の理解では、適切な参照を探しています。Pack URL ref: Pack URLssも使用してみました。パックの URL は次のとおりです。

 <ResourceDictionary Source="pack://application:,,,/MergedResourceDictionaries.Styles;component/component/AllSharedStyles.xaml" />

ここで相対パスを使用する方法に関する提案はありますか????

私の説明/問題の予測について申し訳ありません

4

1 に答える 1

32

最後に解決策を見つけました:

<ResourceDictionary Source="../SharedResourceDictionary.xaml" /> 

相対パスに変更し、ルートパスを指定しました。

于 2012-10-31T05:45:15.700 に答える