3

依存するクラス ライブラリ プロジェクトから辞書をマージしようとしていますが、リソース キーが見つかりません。注:私は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>

ダミーの暗黙的なスタイルを間違った場所に配置しましたか? ここで何かが足していません。ご覧いただきありがとうございます。

4

1 に答える 1