依存するクラス ライブラリ プロジェクトから辞書をマージしようとしていますが、リソース キーが見つかりません。注:私はMicrosoft のこの Connect バグの回避策を使用しています。これにより、フレームワークはネストされたリソースを見つけるのに十分な深さまで検索できるようになります。これは機能していないようです。
失敗例
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyApplication.ControlLibrary;component/ResourceDictionaries/ResourceLibrary.xaml" />
<ResourceDictionary>
<Style TargetType="{x:Type Line}" /> <!-- workaround from MS to allow for this -->
<Main:AppBootstrapper x:Key="bootstrapper" /> <!-- CaliburnMicro bootstrapper, unsure if this is relevant -->
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
ResourceLibrary.xaml 内
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="DefaultColorTheme.xaml" />
<!-- ...snip... -->
<ResourceDictionary Source="TransitionControl.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
これを行うと、リソース キーが見つかりません。そのクラス ライブラリから各辞書を手動でマージすると、正常に動作します。これ、IMO は、リソースを外部アセンブリに抽象化するという目的を無効にし始めます。
成功例
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyApplication.ControlLibrary;component/ResourceDictionaries/DefaultColorTheme.xaml" />
<ResourceDictionary Source="/MyApplication.ControlLibrary;component/ResourceDictionaries/Images.xaml" />
<ResourceDictionary Source="/MyApplication.ControlLibrary;component/ResourceDictionaries/FontIcons.xaml" />
<ResourceDictionary>
<Style TargetType="{x:Type Line}" />
<Main:AppBootstrapper x:Key="bootstrapper" />
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
ダミーの暗黙的なスタイルを間違った場所に配置しましたか? ここで何かが足していません。ご覧いただきありがとうございます。