私はWPF UserControlsのライブラリと、ライブラリ内で共有されているResourceDictionaryを持っています。UserControlで親のResourceDictionaryを参照する
このライブラリのすべてのUserControlは、実際には小さなコントロールのコレクションの単なるコンテナである単一の「シェル」親コントロール内にのみ表示されます。私は「シェル」コントロール内に座る子コントロールからのResourceDictionaryにアクセスすることはできませんが、以下のXAML
<Control.Resources>
<ResourceDictionary Source="MyResources.xaml" />
</Control.Resources>
を追加すると、期待どおり、私は私のシェルコントロールからのResourceDictionaryにアクセスすることができますよ。
私は、WPFがリソースをローカルにチェックし、適切なリソースが見つかるまで上方に移動する必要があるという印象を受けましたか?
代わりに、私はもちろん、私は(と思います)私の子コントロールでのResourceDictionaryを参照することができます
Cannot find resource named '{BoolInverterConverter}'.
Resource names are case sensitive. Error at
object 'System.Windows.Data.Binding' in markup file...
を取得しています。それぞれのコントロールは今この辞書を参照する必要があり、これは必要ではないと私は信じていました。
私は何か奇妙なことをやっているのですか、または行動の誤った予想ですか?
あなたの答えをありがとう。残念ながら、これは私の元のXAMLと同じ「Can not find resource ...」結果を与えます。私はキーを使用して実験していますが、何の成功も見いだせません。ドキュメントリンクのどの部分が何が起こっているのかを説明しています。私はそれを読んで、ResourceDictionariesに関連している間は、リソースがコントロールの階層内で利用可能かどうかについて特に何も見ていませんでした。 –
「ResourceDictionaryにx:Keyディレクティブがないことに注意してください」という冒頭の段落の段落にあります。「StaticResource」マークアップ拡張を使用してリソースを取得しようとしていますか?それはうまくいかないからです。 'DynamicResource'が行います。 –
Robert - 私はあなたのソリューションを見ていました。たとえDynamicResourceを使用していても、コンパイラは「リソース」というコンパイル時エラーをスローします。リソースxxxは解決できません。上のコードでも同じことができます。何かご意見は? – Patrick