短いバージョン 他のウィンドウ/ユーザー/カスタム コントロールに埋め込まれた UserControls の静的リソース ルックアップをどのように処理しますか? Blend 4 が設計時に適切にレンダリングできるように、Visual Studio が既に行っていることを行います。
長いバージョン 質問が示唆するように、いくつかの埋め込みユーザー コントロールを持つウィンドウがあり、それぞれのウィンドウと埋め込みユーザー コントロールはすべて静的リソース マークアップ拡張機能を使用して、app.xaml ファイルのマージされたディクショナリにあるリソースへの参照を解決します。 .
Blend は、個別に開いたときに、VS Designer Surface で作成したサンプル ユーザー コントロールの読み込みとレンダリングに問題はありません。私がほぼどこでも使用している無数の静的リソース マークアップ拡張機能を問題なく解決できます。
'MainWindow.xml' (ウィンドウ コントロール) を開こうとするたびに、Blend 4 で4 - Cannot Create Instance Of Typeエラーが発生していることに気付きました。VS デバッガー インスタンスを Blend にアタッチしてこれらの例外をさらに掘り下げると、私が参照したすべての静的リソースが、それを見つけることができないと不平を言っていることに気付きました。
比較として、私が作成したカスタム コントロールを見てみると、静的リソースはまったく使用されておらず、代わりにローカル リソースでした。このカスタム コントロールを UserControl に埋め込むと、かなりうまく機能することに気付きました。その理由は明らかだと思います!
SOの誰かが、この問題を回避する方法を知っていますか? 「デザインタイム ディクショナリの追加」全体を試してみました <- これは部分的に機能しますが、埋め込まれたユーザー コントロールはまだまったく作成されません。
リサーチ
更新: 考えられる解決策:
- ここに示されている同様のアプローチを採用してください: GianlucaCucco Answer
- すべての静的リソース ルックアップを UserControls のローカル リソースに変換しますか?
- 代わりに、すべての静的リソース ルックアップを動的リソースに変換します。
これらのソリューションはどちらもきれいではありません。= (