web-dev-qa-db-ja.com

ResourceDictionaryのソースに相対パス/ URIを設定する方法

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

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

ここでの問題は私のSharedResourceDictionaryにあります私はMergedDictionariesをフォローしています

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

Project architecture

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

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

'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" />

だからここに相対パスを持つ方法についての提案????

問題の説明/予測で申し訳ありません

20
WPFKK

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

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

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

23
WPFKK